Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Pericoli in agguato sui file di sessione

Quali sono le implicazioni di sicurezza nell'uso delle sessioni
Quali sono le implicazioni di sicurezza nell'uso delle sessioni
Link copiato negli appunti

Lo ripeto ancora, è un concetto importante: le sessioni PHP vengono propagate tramite il già citato SID, stringa "univoca" che identifica una data sessione, puntando il file di sessione sul server Web.

La sicurezza dei file di sessione diviene a questo punto un problema sistemistico: è necessario configurare il server in modo che nessuno possa accedere da remoto a tali file e che nessuna applicazione "estranea" possa aprirli in lettura e/o scrittura. Le relative problematiche vanno (ben) al di là della presente guida.

Tuttavia, pur dando per scontato quanto sopra, la situazione non è rosea: se infatti l'applicazione PHP risiede su spazio Web in hosting (e solo in questo caso può nascere il problema), è verosimile che tutti i file di sessione di tutte le applicazioni vengano salvati assieme: di qui a che un'applicazione PHP bacata o appositamente studiata possa visualizzare il contenuto di ogni file il passo è breve. Di default, i file di sessione sono appunto salvati nella medesima cartella, col risultato che se uno script legge un suo file di sessione, allora quello stesso file viene letto da un qualsiasi altro script di una qualsiasi altra applicazione che giri sullo stesso Web server (quindi coi medesimi permessi).

Le soluzioni sono di impostare, via script, tramite la direttiva ini_set (da usare prima del session_start() e per ogni pagina dello script), i parametri relativi alle sessioni (session.save_path in primis), differenziando la cartella temporanea relativa al proprio programma dalle altre cartelle temporanee, oppure di salvare le sessioni su database.

La seguente riga di codice imposta quale directory di salvataggio dei file di sessione il path percorsomydir
(che diventa percorso/mydir/ su sistemi Linux o Unix like):

ini_set("session.save_path","percorso/mydir/");

Per ciò che concerne la gestione delle sessioni su database, invece, il fulcro dell'idea riguarda il salvataggio dei dati di sessione direttamente su db, di modo che tali dati siano protetti da chiunque non abbia le credenziali necessarie per leggere su tabelle a noi riservate allo scopo. Poste ovviamente le corrette impostazioni degli stessi permessi.


Ti consigliamo anche