Ho un form HTML che chiede nome utente e password e una pagina PHP che effettua il login controllando i dati nel database.
Quali precauzioni devo prendere per eliminare ogni vulnerabilità dalla mia pagina?
Ho un form HTML che chiede nome utente e password e una pagina PHP che effettua il login controllando i dati nel database.
Quali precauzioni devo prendere per eliminare ogni vulnerabilità dalla mia pagina?
Non sono un esperto di sicurezza!
Però, io prendo queste precauzioni:
-controllo i dati (se sono settati) con la isset()
-Controllo (eventualmente) il formato dei dati (ad esempio, la validità della email, oppure con la empty() per evantuali dati necessari)
-faccio l'escape dei dati nella query tramite la mysql_real_escape_string()
Ciao!
Ultima modifica di alemoppo : 26-08-2011 alle ore 15.28.10
regolamento altervista_______________ regolamento forum
Poi, aggiungere htmlspecialchars() in tutti i contenuti e forzare il tipo di contenuto tramite il type juggling.
Il casting non viene fatto in automatico? (dai tipi di "dati" sul database)?
E poi, l'htmlspecialchars() non è meglio farlo dopo? (quando si scrive sulla pagina)? {io uso l'htmlentities()}...
Ciao!
regolamento altervista_______________ regolamento forum
Se viene INSERITO, ma le SQL Injection vengono fatte PRIMA dell'inserimento/estrazione a causa del mancato type casting (o juggling, come preferisci), del mancato escape dei caratteri ' e " e le XSS della mancata trasformazione in entità di < e >.
Dipende da come hai strutturato il Login.
Può non eseguire il login, potrebbe restituirti errore la Query non essendoci valori da confrontare col campo, potrebbe eseguire il login senza inserire i dati che dovrebbero essere richiesti, etc..
Scusami, ma vorrei chiarirmi questa cosa:
Le sql_injection (a me risulta) vengono fatte con gli apici, ma io questo problema lo risolvo con la mysql_real_escape_string() tramite il backslash. Quindi, se un campo mi contene i caratteri come "< > è ...", a me non importa, perché poi li converto con la htmlentities() {eliminando il pericolo di XSS}: prima (e durante) l'inserimento, questi caratteri non son dannosi! Ripeto: gli unici dannosi sono gli apici, con i quali si può modificare la struttura della query (ad esempio, aggiugendo sul controllo della password un bel "OR 1"!), sbaglio?
Ciao!
Ultima modifica di alemoppo : 26-08-2011 alle ore 15.16.06
regolamento altervista_______________ regolamento forum