[ oliverhaddo @ 10.08.2009. 10:53 ] @
Može li netko objasniti kako osigurati skriptu koja se poziva AJAX-om, da se može izvršiti jedino u slučaju da je pozvana iz predviđenog java script koda?Naime, često AJAXOM pozivamo nekaskripta.php koja vrši izmjene na bazi podataka i kako tu skriptu zaštiti od hackera?Naime, razmišljao sam da bi se mogao iskoristiti nekakav unique koji se onda provjerava na serverskoj strani, ali je problem u tome da je javascript dostupan korisniku i nemoguće je sakriti taj unique, session varijabla se isto ne može iskoristiti jer se sadržaj ne može pročitati javascriptom...
Pretpostavljam da postoji neki uobičajeni način kako se ovo rješava?
[ Nikola Poša @ 10.08.2009. 12:00 ] @
Prvo gledaj da to što taj AJAX handler radi bude sigurno i bezbedno, npr. ako je to validacija neke forme, obrati pažnju na escape-ovanja, filtriranja i te stvari. A ako je to sve ok, onda ni haker neće moći da napravi neko čudo koristeći tu tvoju skriptu...
[ zigizig @ 10.08.2009. 15:00 ] @
Za svaku skriptu vaze ista pravila.
Kako si zastitio sve ostale, tako zastiti i doticnu 'ajax' skriptu.
Jedina razlika je u nacinu pozivanja. 'Obicne' skripte se pozivaju posle neke akcije korisnika (klik, submit ...), a 'ajax' skripte poziva javascript.
[ oliverhaddo @ 10.08.2009. 15:11 ] @
Stoji, ali problem je u tome,da te skripte komuniciraju sa browserom na takav način da 'ispisuju' rezultat, bilo kao HTML, JSON. XML..itd...Kako osigurati autentifikaciju u takvom slučaju, ako je to uopće moguće?
[ Nikola Poša @ 10.08.2009. 15:50 ] @
Pa kao i u svakom drugom skriptu, ispitaš da li je korisnik autentifikovan, npr.
Code:

if (!korisnikJeUlogovan) {
   exit;
}

//ostatak koda

Ako se prođe taj if, izvršavanje tog handler-a ide dalje... Ti sad pre tog exit-a možeš da ispišeš neku poruku, kao rezultat izvršavanja tog handler-a, ali ne verujem da će ona išta značiti nekoj neautorizovanoj osobi, koja pokušava da zloupotrebi tvoj skript.
[ oliverhaddo @ 10.08.2009. 16:47 ] @
Taj pristup je OK ako imaš VIP korisnike kojima osobno odobravaš autorizacije.Drugi problem je kad slučaj nije takav, neko se jednostavno registrira i ulogira i onda iz novopokrenute sesije vrši napad.Ima li tome lijeka? :)
[ Milos911 @ 10.08.2009. 20:17 ] @
Vip ne vip, ti svakom novoregistrovanom korisniku dozvolis da radi sta ti hoces. Dakle nevazno da li je vip(ma sta ti to znacilo) ili nije. if ne pita da li je neko vip ili ne :) Ako ti njemu stavis
Citat:

if (korisnikJeUlogovan) {
echo "ne cackaj mecku-ima alarm";
if (korisnikcackmecku)
{
echo "Mars stoko jedna nevaspitana}
}
else
{
//ostatak koda
};
}



on ne moze cackati mecku pa cak i da mu je tata tadic... Nadam se da razumes sta hocu da ti kazem? :)
[ b0ris @ 12.08.2009. 22:59 ] @
Citat:
često AJAXOM pozivamo nekaskripta.php koja vrši izmjene na bazi podataka

A zasto imas potrebu za azuriranjem baze podataka preko ajaxa? Ja obicno koritim ajax samo da bih uzeo neke podatke, nikad da iste smestam u bazu.
Standardno provuces sve te podatke, koji su poslani toj skripti, kroz sistem verifikacije i obezbedis query da radi neometano (u slucaju da nemas nikakvu verifikaciju).
[ zigizig @ 13.08.2009. 12:51 ] @
Jos uvek je pitanje sta ti u stvari hoces da azuriras. Mozda ti je ideja potpuno pogresna. Mozda se to radi na potpuno drugaciji nacin.
Sa druge strane, bez obzira da li je korisnik vip ili ne, zastita uvek treba da postoji. Kako ces je implementirati zavisi i od toga sta azuriras i na koji nacin.
Bilo bi interesantno da napises o cemu se u stvari radi.