Ovo je drugi u seriji članaka o sigurnosti PHP aplikacija. Pogledajte Sigurnost PHP aplikacija

Svaka web aplikacije je napisana u cilju da izvrši zahteve korisnika. Ti zahtevi mogu biti “prikaži mi stranicu” ili “pošalji napisani mail” ili “uloguj me”, odnosno sve komande i podaci koje korisnik šalje aplikaciji. Interpretiranje tih komandi i podataka je osnovna delatnost aplikacije, a baš u toj interpretaciji leže najveći sigurnosni rizici.

Komande i podaci koje šaljemo aplikaciji se nazivaju inputi i mogu biti poslati putem:

  • URL adrese
  • HTML formulara
  • Kolačića (cookie)
  • Parametara u headeru zahteva

U web sigurnosti važi opšte pravilo da “korisniku nikada ne treba verovati”, pa tako ukoliko se od njega zahteva da unese svoju email adresu, ne mora baš značiti da će on to uraditi. Može uneti neku komandu koja će obrisati celu bazu podataka ili iskoristiti vaš server za slanje masovnih SPAM poruka. I ako zvuči neverovatno, realno je moguće i to će ovaj kurs pokazati i ponuditi metode za zaštitu takvog sistema.

Validacija inputa

Najveći sugurnosni propusti leže u interpretaciji inputa, pa stoga validacija tih komandi i podataka predstavlja najveći sigurnosni zadatak u kreiranju web aplikacije. Ujedno, validacija inputa nam omogućava da radimo sa realnim i ispravnim podacima, odnosno da odbacimo sve nepotrebne podatke. Uzmimo za primer samo kreiranje mejling liste – da li je bolje imati 100 korisnika sa ispravnim podacima, ili 10.000 sa neispravnim? Ili zamislite da se na našem kompanijskom blogu nađe 100 SPAM komentara koji sadrže linkove do pornografskog sadržaja ili maliciozne JavaScript kodove koje mogu naneti štetu našim korisnicima.

Dakle, validacija inputa, ne samo da odigrava značaju ulogu kao sigurnosni faktor, već omogućava uspešno poslovanje, kreiranje dobrog imidža i možda pre svega, čuva dragoceno vreme i novac koje bi izgubili ispravljajući nastale štete.

Nastavak je u sledećem članku -> Validacija i filtiranje inputa (Sigurnost PHP aplikacija – 3. deo)