Luca, scusa se ti rispondo solo ora.
Fammi capire una cosa.
Quando io accedo alle pagine interne e fornisco login e password, entro nelle pagine riservate. Fin qui ci siamo.
Io, salvando nella sessione login e password, in ogni pagina richiamo il file controllo.inc che mi controlla se quella login e password esistono effettivamente nel DB.
Faccio questo perché se qualcuno dall'esterno supponiamo riesca in qualche modo a simulare una sessione php e a farla passare come buona al sistema, quest'ultimo fa un ulteriore controllo che è quello della validità della login e della password presenti nelle sessioni.
Oppure stò fuori strada e non ho ben capito l'uso delle sessioni e come e quando possono essere "sniffate"? Anche perché da quello che tu mi dici, una sola volta tu controlli login e password, quando invece mi era parso di capire leggendo varie discussioni che converrebbe validare sempre l'utente.
Il problema è anche un altro. Quando il sistema su cui sto lavorando è stato messo su, si è usati la direttiva del php.ini
register_globals = On
Questo vuol dire che automaticamente anche le variabili presenti nella sessioni, saranno globali. Quindi, in realtà, per scavalcare le sessioni (almeno penso) basterebbe forse inviare delle variabili con lo stesso nome di quelle delle sessioni ed il gioco è fatto. O sbaglio qualcosa?
Comunque sto facendo un gran lavoro cercando di riconvertire tutte le pagine php nell'ottica di disabilitare la direttiva register_globals = On
mettendola ad Off e sfruttando, così, le variabili predefinite del php, $_SESSION, $GLOBALS, etc.......
In realtà se proprio la devo dire tutta, sto anche riprogettando il DB in modo che risulti normalizzato (adesso non lo è proprio!) cercando di avere un occhio per l'efficienza, anche se mi dovesse costare di penalizzare un pò la normalizzazione.