Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [Session]utilizzo session_regenerate_id()

    Ciao a tutti,
    stavo inserendo la funzione session_regenerate_id() nel mio codice per evitare attacchi di tipo session fixation . solo che non capisco il suo funzionamento (O meglio..non funziona!)

    Allora, io ho una pagina index.php dove è presente il mio form classico di login e password.

    index.php
    Codice PHP:
    <?
    session_start
    ();
    echo 
    "
    A-"
    .session_id();
    session_regenerate_id();
    echo 
    "
    B-"
    .session_id();
    ?>
    <html>
    <head>
    .........
    QUesta pagina invierà in $_POST Login e Password alla pagina verifica.php e se i dati sono corretti, scrive nella sessione alcuni parametri di autentificazione.

    verifica.php
    Codice PHP:
    <?
    session_start
    ();
    # codice estrazione DB Dati...poi la verifica..
    if($_POST["login"]==$Row["login"] & $_POST["password"]==$Row["password"])
    {
    $_SESSION["ok"]=1;
    }
    echo 
    "SSID=".session_id();
    ?>
    <html>
    <head>
    .........
    Quello che ho notato è questo, la pagina index avvia la sessione, poi dovrebbe rigenerare l'id di sessione e far lavorare su quella, invece se stampo la sessione id di lavoro della pagina seguente, scopro che non usa quella rigenerata!:


    index.php
    A-873ae7895449061138d0106d8b54e82e
    B-f6f6e0dd355a6efab6bdd8af230f279d



    verifica.php
    SSID=873ae7895449061138d0106d8b54e82e


    che senso ha rienerare la id se poi i dati si scrivono sempre nella stessa session_id?

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Forse se togli l'echo prima della rigenerazione può funzionare meglio

  3. #3
    serve solo per mostrare a video l'id se viene rigenerato.

    qualcuno sa come mai non viene sfruttato il session rigenerato?

  4. #4
    Originariamente inviato da lbottoni
    serve solo per mostrare a video l'id se viene rigenerato.

    qualcuno sa come mai non viene sfruttato il session rigenerato?
    gia' lo ha detto Luca200.

    Se invii un output al browser .... che pretendi dalla sessione? ...

    Se tu avessi abilitata la stampa degli errori te ne saresti accorto da solo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    vi spiego perchè non sono daccordo, prima di dirvelo avevo abilitato l'invio della risposta session_id,contenuto sessioni,etc..via email proprio per eventuali problemi di questo genere.
    Però il problema che io sto ponendo e diverso(questo perchè a video evia email ho lo stesso risultato non corretto e dubito che lo stampare un session_id inibisca la sua rigenerazione)..nel senso che io avvio la session_start() e questo genera una id, poi eseguo una rigenerazione di tale id e mi attendo che nelle pagine successive, se invoco session_start() mi vengano riproposti i dati dall'id rigenerata e non da quella iniziale.

    La stampa a video era messa apposta per mostrare quello che accadeva e renderlo chiaro.


    esempio:

    session_start() #session_id()=1
    rigenerazione #session_id()=2

    pagine succesive eseguo subito session_start(), ma la id utilizzata è 1 e non la 2!
    :berto:

  6. #6
    Se invii un output al browser non puoi piu' inviare il nuovo cookie di sessione. E quindi sul browser rimane il cookie precedente e il session_start() successivo recupera la sessione indicata dal cookie.

    Abilita la stampa degli errori, almeno durante il debug dello script.

    Comunque vedi tu....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    quindi se uso session_id($_POST["id"]) e mi funziona (ovvero modifico la id di sessione di lavoro con una ricevuta) stessa cosa non vale se si vuole rigenerare la id di lavoro con quella funzione per riusarla come nuova?..pertanto come faccio a rigenerare una id di sessione ad ogni login per evitare che il browser utilizzi sempre la medesima se non si chiude?

  8. #8
    ah..inserito error reporting a E_ALL come volevate, ma non vengono mostrati nessun tipo di errore.

  9. #9
    metti anche la stampa degli errori ad ON. (display_error)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    è già on

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.