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 percorso\mydir\ (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.
Sessioni PHP: cosa sono, come si usanoDalla configurazione di PHP, alla gestione delle sessioni in un... |
Continuous Integration: automatizziamo i client con PhingContinuous Integration: automatizziamo i client con Phing. Esempi... |
Archiviazione delle applicazioni PHP con PharCome incorporare intere applicazioni PHP all'interno di un singolo... |
I traits in PHP 5.4Cosa sono, a cosa servono e come si unsano i traits, la novità per... |
PHP 5.4: il web server integratoImpara ad usare il web server integrato nella versione 5.4 di PHP:... |
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Guida PHP con Windows e IISInstallare ambienti per lo sviluppo e la produzione di applicazioni... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |