Un utente può modificare il valore di $ _SESSION in PHP?

questo sta attraversando la mia mente e mi chiedo se è ansible, quanto può essere sicuro archiviare informazioni nella variabile $ _SESSION di PHP?

Memorizzare le variables nella variabile $ _SESSION ha due potenziali per "insicurezza".

  • Il primo come descritto dall'altra risposta è chiamato "fissazione della session". L'idea è che, poiché l'ID di session è memorizzato in un cookie, l'ID può essere cambiato in quello di un altro utente. Questo non è un problema se un utente ottiene un nuovo ID each singola session rendendo quindi molto difficile trovare un ID di una session attualmente funzionante e dirottarlo.
  • Il secondo dipende interamente dal tuo codice. Se il tuo codice perde i valori delle informazioni segnetworking che hai archiviato in $ _SESSION allora non è sicuro. Se il tuo codice consente all'utente di controllare i valori di tali informazioni non è sicuro. Altrimenti se qualcosa è nella variabile $ _SESSION e il tuo codice non consente mai all'utente di vederlo o di scriverlo, allora è sicuro.

Il lavoro di PHP Session memorizza un cookie PHPSESSID sul computer dell'utente finale che funge da chiave di accesso per le informazioni di session basate sul server. Quel valore del cookie è una string hash (la cui sicurezza dipende dalle impostazioni PHP) utilizzata per colbind il browser specifico ai valori specifici della session impostati.

Quella string sembra qualcosa come b420803490a9f0fe8d6a80657fec3160 . Quindi, l'utente finale potrebbe modificare quella string, ma poi la sua session diventerà non valida, poiché quasi certamente non corrisponderà a quella che viene archiviata da PHP e non avranno accesso ai dati.

C'è il rischio, come altri hanno già detto, che PHPSESSID di qualcuno PHPSESSID esposto, e le persone lo usano per dirottare la session di qualcun altro.

$_SESSION è memorizzato interamente sul server, quindi l'utente non può modificarlo. Tuttavia, è ansible sfruttare gli exploit di sequestro di session in cui l'utente si connette alla session di un altro utente.

I dati di session sono memorizzati sul server.

Dove less $_COOKIES sono $_COOKIES sul computer client, $_SESSION è memorizzato sul server. La sua posizione è determinata dal session.save_path di php.ini. Tuttavia ci sono ancora problemi di sicurezza come la fissazione della session