Il fatto che il webserver salvi la sessione su un file esterno alla basedir del sito non è importante, l'importante è che l'eventuale cookie impostato sul browser non sia "in chiaro". Se nel cookie puoi leggere le variabili e il loro valore, sei esposto a session hijacking, soprattutto se non fai controlli di coerenza una volta ricevuto il cookie indietro dal browser
Utile ma non sufficiente...trim e escape vanno bene fino a un certo punto. Se non controlli l'imput passato dall'utente in modo approfondito, sei esposto a sql injections.
Un esempio....
Il tuo codice:
Se non "purifichi" UserID in modo corretto, ad esempio ti limiti a trim o a real_escape, io potrei passarti come valore (get o post è indifferente) "105 OR 1=1", che trasforma la tua query incodice:txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId;
C'è da lavorarci un bel po' sopra, per sanificare i dati...codice:SELECT * FROM Users WHERE UserId = 105OR1=1;
L'user name non è indispensabile, la password è decisamente meglio, possibilmente con una funzione a senso unico (tipo md5 e simili).
Dal browser arriverà comunque sempre il dato in chiaro, dovrai fare lato php la criptazione per verificare che corrisponda a quanto salvato nel db (già criptato)


Rispondi quotando