PHP zajednica je objavila opsežan članak na temelju netočnih tvrdnja vezanih uz crva Santy-a, kako je greška zapravo u php-u a ne tamo gdje jest - u samom forum-u.
Santy nije iskoristio propust php-u, crv je iskoristio slabosti phpbb-a.
PHP je močan i fleksibilan alat. Njegova snaga i fleksibilnost dolaze od zapravo vrlo tankog frameworka koji sjedi na desecima raznolikih 3rd-party biblioteka.
Svaki od tih biblioteka ima svoj jedinstveni način obrade podataka.
Podaci koji mogu sigurno proći kroz jednu biblioteku ne moraju isto
tako proći i u drugoj.
Nedavno aktualan web crv poznat kao NeverEverSanty iskoristio
je pogrešku u provjeri unešenih podataka u popularnom phpbb forumu.
Njihov kôd (koji možete naći i na ovim stranicama u jednom od
prijašnjih članaka) nije ispravno napisan za provjeru urlencodanja. A bez pravilno obavljene provjere unešenih
podataka, kreirani podaci zlonamjernika kombinirani sa bilo kojim
pozivom u PHP-u mogu izvršiti kôd ili pisati po file sistemu kojeg vi
napravite potencionalnim sigurnosnim propustom.
Unatoč sasvim zbunjujućem vremenu u kojem su se pojavili dodaci vezani za sigurnost u PHP-u, i NeverEverSanity crvu, taj crv zapravo nije imao ama baš ništa sa sigurnosnim problemima u PHP-u.
Kada govorimo o sigurnosti, tada zapravo govorimo o dvije
klase, udaljenoj i lokalnoj. Svaki udaljeni exploit može biti uspješno
izbjegnut sa pravilno izvršenom provjerom unešenih podataka.
Ako na primjer pišete aplikaciju u kojoj tražite korisničko ime
i lozinku, provjerite i budite sigurni da ćete dobiti upravo onakve
podatke kakve i očekujete. Također pripazite da ne dobijete preveliku
količinu podataka unešenih od strane korisnika koji bi mogli prijeći
limit podataka koji možete primiti za određenu varijablu.
Čin udaljenog exploita je XSS ili cross-site scripting
problem gdje jedan korisnik unese neki javascript koji neki drugi
korisnik može vidjeti. O XSS-u možete više pročitati u člancima
objavljenim na ovom portalu.
Za cjelovit članak na ovu temu posjetite php.net.