Visualizzazione risultati 1 fino 5 di 5

Discussione: come passare variabile senza farla vedere?

  1. #1
    Guest

    Predefinito come passare variabile senza farla vedere?

    Ciao, vorrei fare uno script per navigare tra i file all'interno del mio sito.

    Immaginate queste directory:
    /foto /* lo script.php si trova qui */
    /foto/compleanno
    /foto/matrimonio


    ...se da /foto voglio passare a /foto/compleanno, posso farlo così:

    script.php?path=/foto/compleanno

    ...il problema è che se poi uno nel browser digita manualmente il path naviga ovunque nel mio sito!

    Mi suggerite qualche metodo alternativo?
    Grazie.

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

    Predefinito

    Per questo puoi utilizzare il mio caro PADS che risolve questo inconveniente.

    Questo è il nuovo codice, più sicuro e protetto:

    Codice PHP:
    <?php

    /* PHP's Apache Directory Simulator è uno script by Michelangelo Scotto (http://miki92.altervista.org/ - http://messenworld.altervista.org/
    - http://micscotto.altervista.org/), questo script permette di simulare le Directory Index ove è stato impedito per una modifica al file
    httpd.config di Apache. Questo script è stato pensato ed adattato per la community di AlterVista.org: progetto non ufficiale di AlterVista.
    Il progetto è pubblicato sotto una Licenza Creative Commons (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.it), per aggiornamenti,
    release e news sul seguente script visitare http://miki92.altervista.org/php-apache-dir-simulator/ | Copyright © 2009 Michelangelo Scotto. */

    // Inizio Configurazione Script -->

    $serversignature = $_SERVER['SERVER_SOFTWARE']." ".phpversion()." Server at ".$_SERVER['SERVER_NAME']." Port ".$_SERVER['SERVER_PORT'];
    $qsm = "dircwd"; // Query String, quello che sarà visibile nell'URL per esplorare le cartelle, default: dircwd => /?dircwd=directory_da_esporare/
    $homeserver = str_replace("\\","/",getcwd()."/"); // Path Assoluta di dove si trova questo script
    $servericons = "/icone/"; // Path di dove sono collocate le icone da utilizzare
    $exticons = "gif"; // Estensione delle icone
    $nodirfil = array(basename($_SERVER['PHP_SELF']),"icons"); // Array con le directory / files da non indicizzare

    // <-- Fine Configurazione Script

    $cwd = strtr(strip_tags(str_replace("\\","/",base_decode($_GET[$qsm]))),array("../"=>"","./"=>"",$homeserver=>""," "=>""));
    $titolo = "PADS: PHP's Apache Directory Simulator";
    $parent = false;

    if(empty(
    $cwd)){ $cmd = "/*"; $titolo = "Index Of /"; }else{ $cmd = $cwd."/*"; $titolo = "Index Of /".$cwd; $parent = true; }

    if(!
    file_exists($homeserver.$cwd)){ exit("Attenzione, directory non trovata!"); }
    $expparent = @explode($cwd,$homeserver.$cwd);
    $parentdirectory = "?".$qsm."=".base64_encode($expparent[0]);

    $glob = glob($homeserver.ltrim($cmd,"/"));
    if(!
    $glob){ exit("Si è verificato un errore durante la lettura delle directory."); }

    function
    File2Icon($filename){ global $servericons, $exticons; $expic = explode(".",basename($filename)); $icona = $servericons.$expic[1].".".$exticons; if(file_exists($icona)){ return $icona;
    }else{ return
    $servericons."generic.".$exticons; }}
    function
    PADS(){ global $homeserver, $servericons, $qsm, $cmd, $glob, $cwd, $nodirfil;

    foreach(
    $glob as $filegen){

    if(
    is_dir($filegen)){ $size = "-"; $icon = $servericons."dir.gif"; $alticon = "DIR"; $href = "?".$qsm."=".base64_encode($filegen); }else{ clearstatcache(); $size = filesize($filegen); if($size < 1000000){
    $size = ceil($size/1024). " KB"; }else{ $size = round(($size/1024)/1024,1)." MB"; } $icon = File2Icon($filegen); $alticon = "ICO"; $href = $cwd."/".basename($filegen); }

    if(!
    in_array(basename($filegen),$nodirfil)){
    echo
    '<tr><td valign="top"><img src="'.$icon.'" alt="['.$alticon.']" /></td><td><a href="'.$href.'">'.basename($filegen).'</a></td><td align="right">'.date("d-M-Y H:i",filemtime($filegen)).'</td>';
    echo
    '<td align="right">'.$size.'</td></tr>';
    }}}
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title><?php echo $titolo; ?></title>
    <style type="text/css">
    a:link, a:visited{
    color:#0000FF;
    text-decoration:none;
    }
    a:hover{
    color:#FF0000;
    text-decoration:underline;
    }
    h1{
    margin-bottom:0px;
    margin-top:0px;
    }
    #serversignature{
    font-family:Georgia, "Trebuchet MS", Arial, Helvetica, sans-serif;
    font-size:10pt;
    }
    </style>
    <!-- PHP's Apache Directory Simulator by Miki92 -->
    </head>

    <body>
    <h1><?php echo $titolo; ?></h1>
    <table><tr><th><img src="<?php echo $servericons; ?>blank.gif" alt="[ICO]" /></th><th>Nome File</th><th>Ultima modifica</th><th>Dimensione</th></tr><tr><th colspan="5">
    <hr /></th></tr>
    <?php if($parent){ ?><tr><td valign="top"><img src="<?php echo $servericons; ?>back.gif" alt="[DIR]" /></td>
    <td><a href="<?php echo $parentdirectory; ?>">Torna Indietro</a></td><td>&nbsp;</td><td align="right"> - </td></tr>
    <?php } PADS(); ?>
    <tr><th colspan="5"><hr /></th></tr></table>
    <span id="serversignature"><?php echo $serversignature; ?></span>
    </body>

    </html>
    Spero ti sia utile
    Ultima modifica di miki92 : 27-11-2009 alle ore 19.27.12
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    Ti ringrazio, ma quindi non esistono altri metodi nel php se non utilizzando uno script ad-hoc?

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

    Predefinito

    Basta saper utilizzare un po' di PHP e mettere insieme due/tre funzioni affinchè se venga passata una path "non accettabile" PHP non la apra.

    Io al posto di creare qualche cosa al momento ti ho postato il mio script già pronto e completamente personalizzabile.
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Il metodo POST è troppo semplice/insicuro per i tuoi gusti?

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

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