Nu faceti (site-uri) ca ei
by Janos Rusiczki
Heh, cat de retardat trebuie sa fii sa faci un sistem de autentificare in care totul sa depinda de un cookie cu valoarea isLoggedOn si putin JavaScript? Pe deasupra cookie-ul trebuie sa fie setat din start pe false ca altfel… Se pare ca exista cazuri. Oricum, din toata povestea imi place cel mai mult concluzia de final a managementului.
Si daca tot veni vorba de securitate elementara, nu ma pot abtine sa nu amintesc de o alta eroare de incepator frecvent intalnita. E vorba de site-urile unde mai toate paginile au un URL de forma /index.php?page=pagina – iar codul din index.php ia string-ul $_GET['page'] ii adauga un .php la capat si include si executa scriptul rezultat. Totul bine si frumos doar ca majoritatea developerilor juniori nu fac nici cele mai de baza verificari, asa ca tu acelei variabile page ii poti pasa chiar si un URL. Si iac’asa rezulta o gaura XSS (Cross Site Scripting) prin care iti poate intra aproximativ un TIR in site. De ce? Pai fiindca fisierul de pe acel URL va fi descarcat si executat cu buna credinta de catre PHP, indiferent de ce contine. Si credeti-ma ca in majoritatea cazurilor nu va contine lucruri foarte prietenoase cu site-ul victimei, ba chiar am vazut file browsere complete cu care poti pescui absolut orice se afla in calea serverului web de pe site-ul cu probleme. Sau, mai rau, script-uri prin care un atacator poate incarca un rootkit care sa-l execute apoi si dupa aia sa foloseasca serverul zombie dupa bunul plac. Cum s-ar zice, nasty stuff, si doar eu stiu cat m-am chinuit sa dau cu mopul dupa greseli de felul asta… Asa ca orice incepator in ale PHP-ului ar face un bine tuturor daca ar vizita si citi macar in trecere The PHP security guide. Dar nu cred ca ei se afla printre cititorii acestui blog. :)
Primul link via Digg.
Comments
Oh-oh… :-o
Cred că îţi supraestimezi cititorii.