Nemas bas neki veliki izbor u nekim situacijama, sem da pravis POST forme, ali ti, iskreno, dodje na isto sa stanovista sigurnosti.
Poenta je da handlujes svaku promenjivu, svaki request. Jer ti uvek znas kakve podatke ocekujes, i ti onda samo odradis proveru da li dobijas takve podatke i eventualno odradis neke konverzije.
Na primer. Imas ID koji saljes preko url-a. On je integer tipa.
Code:
$id = (int)$_GET['int'];
Ovako ces se osiguras da je to uvek integer, bez obzira sta neko poslao. Naravno, ovde mozes da napravis daleko komplikovanije provere po potrebi.
Ali, opet da napomenem, jako je bitno da handlujes svaku promenjivu.
Ja, na primer, ne koristim nikad $_GET, $_POST ili $_REQUEST. Imam svoju klasu TRequest, koja ima funkcije getGet, getPost i getRequest. I onda u okviru tih funkcija radim handlovanje, ali na osnovu prefixa. Meni sve promenjive iz requesta imaju prefix, na primer: int_ str_ txt_ dec_
Naravno, ovde moze se naprave jos bolji sistemi preko prefixa, Da proveravas da duzinu stringa, da li je obavezna promenjiva ili ne. Dosta toga.
Drugi nacin je da napravis fitter na ulazu u celu aplikaciju, koja pre nego sto pocnes da bilo sta radis i koristis request, automatski obradi kompletan request, po odgovarajucim pravilima.
[Ovu poruku je menjao flylord dana 17.11.2006. u 17:57 GMT+1]