View Single Post
Old 05-09-2005, 17:27   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Gremo
ciao a tutti
per un esame sto approfondendo php. mi interessa particolarmente la sicurezza dei form e l'integrità dei databse, quindi vi chiedo:

1) le sessioni sono sicure?ho visto che firefox ad esempio memorizza l'id di sessione in un cookie, ma in teoria le sessioni sono file di testo lato server, giusto?quindi nessun problema con browser vecchi o che non accettano cookie?risultano quindi sicure al 100% per memorizzare dati importanti?

2) $_SERVER['HTTP_REFERER']: lo uso per controllare che il form da cui provengono i dati "risiede" nel mio sito...ma ho letto che è possibile imbrogliare, se si come?con che difficoltà?

qualche trucchetto per aumentare la sicurezza dei form o basta il referer e le sessioni?
1) le sessioni sono sicure se non si conosce l'id di sessione, se si conosce (visto che circola in chiaro ad ogni richiesta verso il server), si può tranquillamente imbrogliare...
Se un browser non supporta i cookie, l'id viene progagato automaticamente dal server nelle richieste GET...

2) Anche il REFERER è una informazione in chiaro che passa nella richiesta HTTP e viene generato dal browser...con una richiesta ad hoc scritta "a mano" (non necessariamente, ma acnhe tramite un programma) si può tranquillamente imbrogliare.

Puoi controllare l'ip e salvarlo nella sessione... Questo ti può servire... Esiste anche lo spoofing (ovvero imbrogliare sulla sorgente dei pacchetti con pacchetti IP fatti ad hoc), ma in ogni caso, a meno che chi fa lo spoofing "stia nel mezzo" fra client e server e faccia uno sniffing dei pacchetti di ritorno, è una comunicazione solo verso il server...
Il problema dello spoofing si può quindi aggirare con sistemi di controllo post autenticazione... Facendo l'esempio di un e-commerce prima della conferma d'ordine basterebbe chiedere un codice alfanumerico sempre diverso visualizzato all'interno di una immagine (un po' come fanno in molti forum, lo puoi realizzare con le librerie gd)... Questo evita anche problemi relativi a bot, a meno che non abbiano un sistema di analisi delle immagini per ricavarne il testo...in tal caso basta rendere l'immagine più confusa (con linee orizzonatali, verticali e oblique casuali o con font casuali)...

Un sistema del genere può essere molto valido sotto tanti punti di vista, ma non per la sicurezza dei contenuti (esiste sempre lo sniffing)...per quello si è obbligati ad usare un canale criptato, che risolve anche molti dei precedenti problemi, ma ne apre altri...come ad esempio quelli relativi alle certification authority ed alla distribuzione delle chiavi... Dieffie-Hellman rulez

Come puoi vedere non è una cosa così semplice
cionci è offline   Rispondi citando il messaggio o parte di esso