Domanda

Quanto sono sicure le sessioni php? Sto pianificando di utilizzare le sessioni native di PHP per autenticare gli utenti. Gli utenti possono modificare i dati della sessione come possono fare $ _POST e $ _GET?

È stato utile?

Soluzione

I dati entrano in una sessione solo quando l'utente come sviluppatore ha inserito l'utente nella sessione tramite il codice che scrivi. Pertanto, le sessioni sono sicure quanto i dati che autorizzi al loro interno e in che modo ti fidi e utilizzi quei dati. Inoltre, le sessioni si basano su un ID sessione utilizzato dal client per identificare l'utente della sessione. Se qualcuno dirotta un sessionID, può emulare come utente il cui ID sessione ha rubato. Questo può accadere nella comunicazione non SSH. Quindi non fidarti di un ID sessione per identificare un utente (per cose importanti) a meno che non abbia effettuato l'accesso e sessionID non sia stato trasmesso solo in modalità protetta.

La prossima domanda di sicurezza sarebbe la "indovinabilità" di un sessionID che hai inviato all'utente. Se gestisci le cose che menziono sopra, quando le supererai e la documentazione capirai come " indovinabile " Gli ID sessione PHP sono.

Finalmente fai attenzione agli attacchi XSS. Esistono diversi post su Internet che spiegano come ridurre al minimo l'incidenza di XSS.

Altri suggerimenti

Le sessioni PHP sono sicure quanto il cookie di sessione fornito all'utente. Tutti i dati nella sessione sono archiviati sul lato server, quindi gli utenti non possono modificarli arbitrariamente se non attraverso qualsiasi funzionalità fornita dal sito. Tuttavia, i cookie di sessione PHP sono un obiettivo comune per gli attacchi cross-site scripting (XSS) e cross-site request forgery (CSRF). Allo stesso modo, le sessioni sono un buon modo per eseguire l'autenticazione dell'utente purché tu sia consapevole dei potenziali rischi.

Alcuni link di Wikipedia:

CSRF

XSS

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top