2012-10-30 13 views
6

Ho bisogno di un modo per passare una variabile tra due pagine in modo sicuro.Il modo più sicuro per passare variabili tra due pagine con PHP

So che posso usare POST/GET/biscotto/sessione o nascosti campi ma penso che nessuno di questi modi non sono abbastanza sicuro perché:

get può essere visto nella URL
cookie è un lato client in modo che possa essere il cambiamento dal client
sessione può confrontarsi Session ID dirottamento e ...

Ora voglio sapere è lì altri modi migliori di questi modi e non se c'è strega di questi è il il modo migliore per passare le variabili in modo sicuro;

+7

Sessioni. Se non ti fidi di loro, allora penso che tu abbia esaurito le opzioni. – Crontab

+1

Le sessioni sono i tuoi amici su php (lato server)/alternative dai un'occhiata nell'html5 web storage http://www.w3schools.com/html/html5_webstorage.asp – donald123

+2

Sicuramente sessioni. Interessato a leggere: http://cleverlogic.net/tutorials/session-hijacking-0. L'ID di sessione di rigenerazione – alexn

risposta

10

Sessione è il metodo più sicuro disponibile.

La rigenerazione di ID sessione aiuterà contro il dirottamento di sessione, ma SSL tramite https proteggerà davvero contro di esso.

BTW: Se la sessione viene dirottata e si visualizzano i dati dell'utente sul client, non importa come li hai dati nella seconda pagina, il dirottatore la vedrà. Se lo stai usando solo lato server, il dirottatore non lo vedrà.

+0

è utile per impedire l'intercettazione solo se la sezione di accesso successiva esegue TLS. Se l'ID rigenerato viene copiato dal percorso del browser e poi riprodotto in un altro browser, presumo che l'accesso avverrà comunque indipendentemente dal TLS o meno. Sono corretto? –

3

Passando i valori delle variabili tra le pagine utilizzando sessione è più sicuro

e rigenerare la id di sessione da session_regenerate_id ogni volta che cambia il livello di sicurezza (come ad esempio il login). Puoi anche rigenerare l'ID di sessione ogni richiesta, se lo desideri.

Buona Lettura

PHP Security Guide: Sessions

0

Non c'è niente di sbagliato con l'utilizzo GET - purché siano sterilizzati correttamente ... si può sempre combinare ottenere con un hash dei parametri per ridurre il rischio di esso essere manomesso, insieme all'utilizzo di sessioni per garantire che siano anche legittimi.

1

poiché sessione è lato server, è il modo più sicuro di passare le variabili e per prevenire il dirottamento di sessione è possibile utilizzare la funzione session_regenerate_id in php manuale: http://php.net/manual/en/function.session-regenerate-id.php

ma questo non significa che si utilizza sempre sessioni per passare le variabili è ancora possibile utilizzare i cookie, ma crittografare i dati prima di memorizzarli nei cookie.

Problemi correlati