Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Evitare Postdata

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24

    Evitare Postdata

    Bg a tutti, mi servirebbe una consulenza.
    Area "utenti" con accesso riservato e pannello di controllo di un sito che stò sviluppando.
    Il problema che incontro è il seguente:
    ho creato un DB utenti nel solito modo, con la classica password. Dalla pagina di accesso faccio accreditare l'utente, controllo sul DB e se è OK mi apro la sessione e lo invio, con link che già comprende il session_id(), al suo pannello. Quando finisce esegue il logout, fatto nel solito modo con pulizia degli array e session_destroy(). Quindi scade la sessione e non entra se non ri-esegue il log-in. Fin qui tutto ok ma mi si pone un problemino.
    Se l'utente, anche facendo il log-out, incomincia a fare marcia indietro con il back del browser, ritorna sulla pagina di login già accreditata e i dati "postdata" che sono rimasti in memoria lo fanno riaccedere al link d'inizio (quello che comprende il session_id() autenticato) e quindi rientra senza dover ri-digitare la password. Ho provato a desettare le variabili di $_POST della form di accesso (unica con campo $PHP_SELF), ho provato a creare un $_COOKIE di appoggio oltre quello di sessione (es.utente in o utente out), ho provato ad inibire il tasto back ma inutilmente tanto dalla cronologia o con il tasto canc si può comunque accedere alle pagine precedenti.
    Chi ha un uovo di colombo per me? (disabilitare la cache sulla pagina della form???)
    grazie per l'interessamento.
    Chicco

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24
    nessun suggerimento??
    nessuna esperienza analoga?? :rollo:
    grazie, buona giornata a tutti
    chicco

  3. #3

    Re: Evitare Postdata

    Se l'utente, anche facendo il log-out, incomincia a fare marcia indietro con il back del browser, ritorna sulla pagina di login già accreditata e i dati "postdata" che sono rimasti in memoria lo fanno riaccedere al link d'inizio (quello che comprende il session_id() autenticato) e quindi rientra senza dover ri-digitare la password.
    Cioe' tu hai provato a tornare alla pagina di login con il back e quando ti ha chiesto "re-postare i dati POSTDATA" e gli hai detto di si' lui ha loggato? Beh e' normale... tecnicamente il browser e' come se ri-digitasse nome utente e password al tuo posto, quindi deve farti fare il login.

    Se invece torni indietro in una pagina in cui non dovresti essere autenticato, e invece ti ci fa accedere, allora e' un problema un po' piu' critico... come inizio mi viene da chiederti se il controllo di sessione e utente lo fai in un'unica pagina che poi include tutte le altre del pannello di controllo...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24

    Re: Re: Evitare Postdata

    ciao e grazie,
    ho cercato di chiarire a parole senza codice ed hai capito perfettamente.
    L'unico problema è il postdata. Le sessioni scadono e l'utente non accede più ma se torna alla form di login i postdata (io posso anche dargli annulla ma mi devo porre i problemi degli utenti) lo fanno ri-loggare senza dover ri-popolare la form della password.
    Per la sessione la apro quando l'utente è identificato sul DB e lo mando al suo ctrl-panel attraverso un link dove ha già in carico il suo bravo session_id() autorizzativo. Così me lo porto a spasso per tutto quello che gli serve fino al log-out dove, però, incontro i problemi già descritti.
    Ho provato varie soluzioni senza esito e mi pare di aver letto che è un problema abbastanza comune di non facile soluzione ecco perchè cercavo esperienze analoghe e soluzioni.
    Cmq grazie, se risolvo posto a favore di chi ha problemi in questo senso.
    buona giornata
    C.

    Originariamente inviato da Darsch2501
    Cioe' tu hai provato a tornare alla pagina di login con il back e quando ti ha chiesto "re-postare i dati POSTDATA" e gli hai detto di si' lui ha loggato? Beh e' normale... tecnicamente il browser e' come se ri-digitasse nome utente e password al tuo posto, quindi deve farti fare il login.

    Se invece torni indietro in una pagina in cui non dovresti essere autenticato, e invece ti ci fa accedere, allora e' un problema un po' piu' critico... come inizio mi viene da chiederti se il controllo di sessione e utente lo fai in un'unica pagina che poi include tutte le altre del pannello di controllo...

  5. #5
    ma il problema te lo fa anche se fai il controllo del session_id?

  6. #6

    Re: Re: Re: Evitare Postdata

    L'unico problema è il postdata. Le sessioni scadono e l'utente non accede più ma se torna alla form di login i postdata (io posso anche dargli annulla ma mi devo porre i problemi degli utenti) lo fanno ri-loggare senza dover ri-popolare la form della password.
    Ah capisco... tu sei preoccupato del fatto che se un utente fa il login, poi fa il logout e lascia aperto il browser, un altro utente potrebbe accedere semplicemente andando indietro con il pulsante back e rispedire i dati POSTDATA...

    Oddio ... ora ci penso in effetti e' un buchetto nella sicurezza da non sottovalutare... non ci avevo mai pensato... ci ragiono un po' e magari cerco anche io in giro, ci riaggiorniamo su questo topic... ^_^
    Probabilmente cmq si tratta di cancellare la cache del browser... o una roba del genere...

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Mi sembra che per il logoff prima di cancellare la sessione cancello le variabili di sessione (session_unregister). Poi all'inizio di ogni pagina ho uno script che testa se una variabile di sessione è definita. Se non lo è allora richiamo la pagina di login. Questo vale anche se seleziono una pagina dove c'era un post data.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Mi sa che ho trovato qualcosa di piu' semplice...

    Prova a mettere

    codice:
    header('Cache-Control: Private');
    all'inizio delle varie pagine prima di qualsiasi output...

    EDIT: sembra funzionare... ^_____^

  9. #9
    No, rettifico, non funziona...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    24
    ciao, scusa leggo ora..
    grazie ma avevo già provato a disabilitare la cache di quella singola pagina php ma niente.
    Per le session ovviamente al logout svuoto tutto ma il problema, con tasto back, rimane per i motivi che hai perfettamente capito.
    Boh ci lavoro un pochino se trovo la soluzione la posto.
    ciao buona serata
    chicco

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.