Bejelentkező script hiba???
Kérlek segítsetek, a kódom így néz ki:ezzel mi a baj?? mikor belépek a jó felhasználónév jelszóval akkor aztírja ki, hogy sikertelen bejelentkezés:S segítsetek!
■ <?php
$username = $_POST[username] ;
$password = $_POST[password] ;
$kapcsolat = mysql_connect ('127.0.0.1', 'animefanblog', 'naruto');
mysql_select_db ('animefanblog');
$parancs = "SELECT * FROM videosmart WHERE username = '$username'";
$valasz = mysql_query($parancs);
$sor = mysql_fetch_array($valasz);
if ($password == $sor[password])
{
print "Sikeres bejelentkezés";
}
else
{
print "Sikertelen bejelentkezés";
}
mysql_close($kapcsolat);
?>
Itt lehet tesztelni
Az adatbázisból a felhasználó
A "select *" szerintem
A megoldáshoz irasd ki a képernyőre a változók értékeit. Ha a $sor['password'] üres, akkor már tudod, hogy az adatlekérésnél van a hiba. Ha így van, akkor mysqladmin-ból add ki a parancsot és nézd meg mit ad vissza.
Egyébként nekem azt írja, hogy "Sikeres bejelentkezés" :) Bármire :)
Hoppá, igazad van, lehoz
SQL Injection
akarmi' OR 1
akkor be fog léptetni :). Egy ugye abból adódik, hogy a lekérdezés ekkor a következő lesz:jelen formában ha azt adom
Be fog lépni, ha az űrlapba beírt jelszó egyezik a MySQL természetes adatsorrendjében elsőnek szerepelő felhasználó jelszavával. Ez szerintem nem sokat segít egy támadónak.
De egy biztos: mielőbbi javítás szükséges.
Tapasztalatom szerint
Másfelől:
Igen. Amennyiben a támadó
A súlyos biztonsági hiba az volna, ha a jelszó összehasonlítást nem a PHP végezné, hanem ugyanaz a sérülékeny SQL.
elnéztem
Kalas: Poetro kódjával mi a bajod?
Átfogalmazom
Ekkor ugye:
' OR password='1234
De itt most nem is ez a lényeg, hanem hogy lyukak vannak, amiket mindenképpen foltozni kell.
a picsaxDD
ez már fáj
Nekünk meg a stílusod. Ez itt
Többiek nevében is köszönöm.
Konkrét kód
Köszönöm szíves kedvességeteket.
Így jó lesz?