Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    86

    HTTP_REFERER e area riservata..

    Ciao a tutti

    visto il grande aiuto che ogni volta sapete darmi vi posto un'altra mia richiesta:

    ho predisposto un'area ad accesso riservato che utilizza i cookie fatta più o meno così:

    Preparo il modulo per l'accesso all'area riservata.

    modulo di login.htm
    -----------------
    Codice PHP:
     <form method="POST" action="redirect.php">
    Password <input type="password" name="password">
    <
    input type="submit" value="Login">
    </
    form

    Verifico i dati passati dal modulo e se ok setto un cookie le computer dell'utente con il nome TEST e gli assegno il valore "ok" e scadenza a 1 anno dalla data di oggi.

    redirect.php
    ------------------
    Codice PHP:
     <?php
    // verifico username e password e se ok...
    $password $_POST["password"];
    if (
    $password <> 'pizza87') {
    echo 
    "Non sei autorizzato ad entrare in quest'area";
    } else {
    setcookie("TEST""ok"time() + 60 *15);
    header("Location: [url]http://miosito.org/welcome.php[/url]");
    }
    ?>
    Recupero il cookie precedentemente memorizzato nel computer dell'utente e controllo che sia presente ossia se il browser dell'utemte accetta i cookie oppure no.

    welcome.php
    -----------------

    Codice PHP:
     <?php
    if (!isset($_COOKIE["TEST"])) { 
     echo 
    "Non accetti i cookie. Per entrare devi abilitare il browser ad accettare i cookie"
    } else { 
    echo 
    "Mostro la pagina di ingresso";

    ?>
    così tutto pare funzionare, l'unica cosa che non mi piace è che se un utente "malintenzionato" digita direttamente il link alla pagina protetta welcome.php il programmino non lo lascia entrare (dato che nn trova i cookie) ma gli risponde " "Non accetti i cookie. Per entrare devi abilitare il browser ad accettare i cookie".

    in questi casi preferirei mostrare il messaggio "non sei autorizzato ad entrare in questa area"..

    Per farlo ho inserito allora in welcome.php una verifica della pagina di proveninza:
    se si proviene da login.php va tutto bene altrimenti non si entra ricevendo il messaggio: "non sei autorizzato ad entrare in questa area".

    il codice sarebbe questo:

    Codice PHP:
     <?php
    $provenienza 
    $_SERVER["HTTP_REFERER"];
    if (
    $provenienza ==  "http://miosito.org//login.php")  {

    if (!isset(
    $_COOKIE["TEST"])) { 
     echo 
    "Non accetti i cookie. Per entrare devi abilitare il browser ad accettare i cookie"
    } else { 
    echoo "Mostro la pagina di ingresso"; } 

    }

    else {
    echo 
    "<div align='center'>Non sei autorizzato ad entrare in quest'area</div>

    <div align='center'>Torna alla pagina di <a href=login.php>login</a></div>"
    ;
    }
    ?>
    Così facendo però se un navigatore, effettua l'accesso, visita la pagina protetta e poi esce e rientra passando da un'altra pagina del mio sito diversa da LOGIN.php non può più entrare anche se il cookie è ancora valido..

    Insomma..

    è possibile settare

    Codice PHP:
    $provenienza $_SERVER["HTTP_REFERER"];
    if (
    $provenienza ==  "http://miosito.org/Php/Guild/login.php"
    modificando la condizione if in modo che riconosca la provenienza da una QUALUNQUE delle pagine del mio sito e NON SOLTANTO DA UNA pagina??

    Grazie mille a tutti per la pazienza...

  2. #2
    Il codice che hai scritto garantisce il livello di sicurezza di un pacchetto di caramelle aperto.

    Ti suggerisco vivamente di ricominciare daccapo studiando uno delle migliaia di tutorial disponibili on line:

    http://php.html.it/guide/lezione/299...ne-in-pratica/
    http://php.html.it/guide/leggi/121/g...urezza-di-php/

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    86
    E' proprio quello che avevo in mente di fare..

    Sono alle prime armi con il php e lo sto studiando nei ritagli di tempo.

    Ti ringrazio per i links che mihai segnalato, potresti spiegarmi un pò meglio quali sono gli errori principali che ho commesso scrivendo il codice?

    so che usre "HTTP_REFERER" non è sicuro ed avevo già previsto di rivedere il codice ma per la parte dei cookie?

    sbaglio qualcosa?

    ovviamente nel codice originale UserId e Password sono recuperate da un database e non sono fissi..

    grazie mille per il tuo aiuto..

  4. #4
    Ma non controlli in nessun punto se quei due cookie (username e password) sono presenti nel DB.

    Poi cmq ti conviene mettere il controllo in ogni pagina ad accesso riservato...o cmq un controllo che ti assicuri che le corrispondenze dei cookie username e password siano verificate dentro il DB.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.