View Full Version : [PHP] Sicurezza
Traxsung
06-08-2006, 14:39
Sono nuovo del linguaggio php, ma spesso sento di formun hackerati ecc.
Mi stato chiedendo... visto che devo realizzare un form dove gli utenti possono inserire dati e poi questi verranno memorizzati all'interno di un database.... esiste un modo per rendere il tutto abbastanza sicuro???
Sono nuovo del linguaggio php, ma spesso sento di formun hackerati ecc.
Mi stato chiedendo... visto che devo realizzare un form dove gli utenti possono inserire dati e poi questi verranno memorizzati all'interno di un database.... esiste un modo per rendere il tutto abbastanza sicuro???Certo, ma è una questione che dipende esclusivamente da come viene scritto il codice!
Se ad esempio con un form devi gestire un login accedendo ad un database, devi assicurarti di creare la query in modo corretto per evitare il cosiddetto "SQL Injection". Se devi memorizzare in un db dei dati inseriti dagli utenti e che tutti possono poi vedere (es. un guestbook), devi assicurarti che un utente "malizioso" non possa inserire del codice di script che verrebbe inserito nella pagina.
Ecc...
Per le SQL Injection, puoi leggere <qui> (http://php.html.it/articoli/leggi/896/proteggersi-dalla-sql-injection/) oppure <questo> (http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf) pdf.
Traxsung
06-08-2006, 17:49
andbin ho letto il sito che mi hai linkato ed è molto interessante. L'unica cosa che non ho capito è quello riportato qui :
http://php.html.it/articoli/leggi/896/proteggersi-dalla-sql-injection/2/
Potresti spiegarmela ?
Grazie
andbin ho letto il sito che mi hai linkato ed è molto interessante. L'unica cosa che non ho capito è quello riportato qui :
http://php.html.it/articoli/leggi/896/proteggersi-dalla-sql-injection/2/
Potresti spiegarmela ?Mi sembra che lo spiega molto bene in quella pagina.
Se hai una query del tipo:
$sql = "SELECT * from utenti WHERE login='$login' AND password='$password'";
dove $login e $password ti arrivano direttamente da un form inviato dall'utente ... è molto pericoloso.
Immagina se l'utente inserisce nel campo login il testo: "pippo' OR 1=1 --". La tua query diventa:
$sql = "SELECT * from utenti WHERE login='pippo' OR 1=1 --' AND password='xxxx'";
Riesci a loggarti senza avere le credenziali valide ...
La prima cosa da fare quindi è quella di effettuare un escape dei caratteri, quindi una cosa del tipo:
$sql = "SELECT * from utenti WHERE login='" . mysql_escape_string($login) . "' AND password='" . mysql_escape_string($password) . "'";
Per le SQL Injection, puoi leggere <qui> (http://php.html.it/articoli/leggi/896/proteggersi-dalla-sql-injection/)
Grazie, servito anche a me :)
SerMagnus
18-10-2006, 09:37
interessante
3mentina
13-11-2006, 11:33
molto utile questa informazione.
Sapete se esiste qualche script già bello e pronto da utilizzare nel proprio sito, già fatto, per nascondere alcune pagine? (tipo da sourgeforge ecc)
E poi, se devo nascondere un file pdf, come si può fare? è sufficiente chiamarlo con una stringa di caratteri casuali "jkjfsdswjnwfw15wdf46wf" e inserire il link in una pagina protetta?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.