Da moderatori nepomisle da zelim nekog da hakujem iskreno to mene nezanima.
Do sada sam koristio mysql_real_escape_string, get_magic_quotes_gpc da bi zastitio svoje upite...
E sada ja sam malo vise istrazivao i napravio sam simple formu za logovanje i php fajl koji proverava da li korisnik postoji ili ne u bazi...
Citajuci na php.net i po googe-u kako se zastiti i kako izgleda napad ja sam taj primer primenio na svoju app i neradi...
$name = $_POST['name'];
$pass = $_POST['pass'];
if ($name =='' OR $pass == '') {
die("Unesi username or password!");
}
else {
$q = mysql_query("SELECT * FROM users WHERE name= '$name' AND pass = '$pass'") OR die(mysql_error());
if(mysql_num_rows($q)) {
echo 'You are loged...';
}else {
echo 'Korisnik nepostoji...';
}
}
Radi ako direktno u kodu dodam OR 1 ili OR 1=1
$q = mysql_query("SELECT * FROM users WHERE name= '$name' AND pass = '$pass'" OR 1=1) OR die(mysql_error());
Ali na php sajtu sam citao da ako korisnik unese u polje username administrator <postojeci clan> i kao sifru unese ' OR 1=1' da ce MySQL vratiti TRUE i uspesno logovanje.
Ja kad unesem u password polje to sto su rekli dobijam :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Probao sam na 100 nacina i dalje isto. Zasto bi onda brinuli o ovome kada sam sql vraca gresku i gubili brdo vremena na ciscenje stringova itd...
Ja iskreno nisam dublje zalazio u bezbednost ali cimam se vec duze vreme i kao sto vidim nemoguce je odraditi sem ako oni nemaju neke nove metode...
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.