Visualizzazione risultati 1 fino 13 di 13

Discussione: PHP's Apache Directory Simulator - Come Simulare la mod_autoindex di Apache con PHP

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito PHP's Apache Directory Simulator - Come Simulare la mod_autoindex di Apache con PHP

    Su AlterVista come tutti ben sappiamo la mod_autoindex è disabilitata e quindi non è possibile elencare file e directory qualora l'index non fosse presente.

    Come ovviare il problema?

    Per aggirare questo problema ho creato un piccolo script PHP e l'ho chiamato PHP's Apache Directory Simulator (PADS).

    Questo script (compatibile con PHP 4 o superiore) simula quasi perfettamente la mod_autoindex di Apache la sua personalizzazzione è molto semplice e rapida in quanto c'è da configurare solo 3 variabili che servono allo script per funzionare al meglio.

    Attualmente per assomigliare alla mod_autoindex manca poco, non vi ho postato direttamente il codice perchè potrebbe subire variazioni in poco tempo e non vorrei tornare qui a modificare 1000 volte il mio post (oltre il fatto che poche persone si accorgerebbero della modifica)...anche questa volta vi lascio i due link fondamentali:

    1. [PADS] PHP's Apache Directory Simulator - Home Page
    2. [PADS] PHP's Apache Directory Simulator - Demo (con modifica scolastica)

    N.B. Ho utilizzato PADS per una cartella che utilizzo per condividere file scolastici quindi c'ho applicato una piccola MOD che mi ha aggiunto i banner ed uno stile ai collegamenti ipertestuali nient'altro.

    Come sfruttare PADS su AlterVista
    Secondo me PADS può essere sfruttato su AlterVista anche per migliorare quella pagina "Index mancante", per fare ciò ci occorre una pagina di errore personalizzata 404 con estensione .php in cui inseriremo, prima di qualsiasi codice presente, le seguenti righe:
    Codice PHP:
    <?php

    $request
    = $_SERVER['REQUEST_URI'];

    if(
    is_dir($request)){

    $user = "miki92"; // Sostituisci con il tuo username su AlterVista
    $dirname = dirname($request);
    $homepads = "../pads/index.php"; // Percorso di dove si trova lo script PADS
    $path = "/membri/".$user."/".$dirname."/index.php";

    if(!
    file_exists($path)){
    exit(include(
    $homepads));
    }}
    ?>

    // Da qui in poi segue il vostro codice 404
    In pratica questo codice analizza il file/cartella richiesto ma non trovato, se è una cartella controlla la presenza di un file index (in caso non ci sia mostra tutti i file e le directory della cartella richiesta) mentre se è un file mostra l'errore 404 scelto dall'utente.

    Per segnalazioni varie potete contattarmi tramite mio sito ed entro 24h riceverete una risposta.

    Spero che questo script vi sia utile e che possa essere d'aiuto a molta gente,
    Michelangelo
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    LOL!!!!!!

    emm ...consiglio di rivedere il tuo script.

    soprattutto di controllare bene la directory passata per evitare ".." indiscreti ;)
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    In verità non ho trovato problemi in locale...mi spiegheresti meglio qesto ".."?
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Ti rispondo in privato che è meglio.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    Guest

    Predefinito

    C'è una demo? xD

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Certo, se vedi nel post #1 ci sono due link tra cui uno è la demo che attualmente ho disattivato in quanto binarysun mi ha fatto notrare un importante bug che potrebbe compromettere la sicurezza di alcuni file, quindi ora mi metto all'opera per risolvere.
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    Guest

    Predefinito

    Io uso una cosa simile in locale su XAMPP per farmi un listato di cartelle, poi di file (è migliore in locale perchè ha qualche aspetto grafico, esempio) :

    Codice PHP:
    <?php

    $open_directory
    = '../';

    $directory_open = opendir($open_directory);

    $directory_null = array(
    '.', //Lasciare
    '..', //Lasciare
    );

    $file_null = array(
    '.', //Lasciare
    '..', //Lasciare
    );


    while(
    false !== ($directory = readdir($directory_open)))
    {
    if(!
    in_array($directory, $directory_null))
    {
    $directory_name = '../' . $directory;

    if(
    is_dir($directory_name))
    {
    print
    '&raquo;<a href="' . $directory_name . '/" target="_blank">' . $directory . '</a><br />';
    }

    }
    }
    closedir();

    $directory_open = opendir($open_directory);

    while(
    false !== ($file = readdir($directory_open)))
    {
    if(!
    in_array($file, $file_null))
    {
    $file_name = '../' . $file;

    $file_link = '../' . $dir = end(explode('/', dirname($file))) . '/' . $file;

    if(
    is_file($file_name))
    {
    print
    '&raquo; <a href="' . $file_link . '" target="_blank">' . $file . '</a><br />';
    }
    }
    }
    closedir();

    ?>
    A mio parere potrebbe andare bene se migliorato con l'utilizzo di $_GET al posto di variabili "statiche"!

    In ogni caso prima di vedere una demo non si può commentare

  8. #8
    Guest

    Predefinito

    Io una volta avevo fatto una cosa del genere! Cmq... semmai servirebbe uno script semplicissimo che genera il tutto con mod_autoindex! ^^
    PS. Federico mi hai ricordato un altro motivo perchè mi sono tolto XAMPP e sono passato a Wamp Server! ^^

  9. #9
    Guest

    Predefinito

    basta usare l'operatore ternario per verificare che, se non è passato nulla via get o valori nell'array si aprirà la cartella dove risiede il file, altrimenti quella passata via GET.

    Se la cartella esiste viene paerta, altrimenti o si restituisce un errore altrimenti quel che si voglia


    [ot] Che non listava le cartelle di htdocs? Per quello mi sono fatto lo script, ci ho messo più tempo a farlo graficamente "decente" che a farlo

    non mi sembra però un motivo per cambiare programma, lo trovo uno dei migliori [/ot]

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Ragazzi dopo qualche mese stamani ho trovato un po' di tempo per me e mi sono dedicato a PADS riscrivendolo da 0 in quanto mi è stato fatto notare che c'erano vari BUGS che potevano compromettere la sicurezza di uno spazio web.

    Vi linko nuovamente i percorsi, ora PADS è più sicuro:

    Ah quasi dimenticavo, devo ringraziare molto binarysun per avermi fatto notare i vari bugs in via privata
    Ultima modifica di miki92 : 27-07-2009 alle ore 13.48.04
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    Guest

    Predefinito

    Scusami Miki ma non andrebbe nella sezione "How to?"

  12. #12
    Guest

    Predefinito

    No, perchè lui sta soltanto pubblicizzando una sua creazione.

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da zomer Visualizza messaggio
    Scusami Miki ma non andrebbe nella sezione "How to?"
    Citazione Originalmente inviato da nokiagames Visualizza messaggio
    No, perchè lui sta soltanto pubblicizzando una sua creazione.
    In realtà ho provato ad inserirlo in quella sezione ma evidentemente questa mia opera è stata presa più come pubblicità che utilità generale per molti degli utenti di AlterVista quindi dopo l'approvazione è stata spostata in questa sezione.
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •