PHP-val milyen jó védelmet ajánlotok SQL injection ellen, és melyik az a védelem ami a legjobb egy bejelentkező felületen?
en ezt tudom:
mysql_real_escape_string($input)
en is kivancsi lennek tobbre
Egy sima bejelentkező felületet viszonylag könnyű levédeni.
Először is az oda nem illő stringeket kell kiszedni a $honnan = str_replace('mit','mire',$honnan) parancsal.
ezeket legfőképpen:
'
"
\
<script>
union
order
group_concat
database
from
or 1=1
naggyából ennyi elég.
Ezzel kis is iktattunk jópár sebezhetőséget.
Ezen felül lehetnék még bf próbálkozások.Ami annyit takar hogy sokszor próbálkozik belépni egy listán szereplő felhasználó+jelszó listával.
Legegyszerűbb,ha erre írsz 1 kis + kódot ami egy fileba írja a próbálkozásokat,majd ha 3. próbálkozásra sem tud bejelentkezni,akkor letiltja 5 percre a felhasználót.
Most kb így ennyi..remélem segítettem!
Én most ezt találtam ki egy félperc alatt :D
<?php
$string="ABCD'EFGHIJ";
for($i=1;$i<=strlen($string) && substr($string,($i*-1),1)!="'";$i++);
if(substr($string,($i*-1),1)=="'"){
echo "<h1>HACKER!!!</h1><br>";
}
else{
echo "OK";
}
?>
Ha csak sql injection ellen akarsz védeni, akkor elég a mysql_real_escape_string, illetve ennek megfelelő alternatívái: [link]
Ez kivédi, hogy a paraméterként átadott jelszót és felhasználónevet rosszindulatú kódként értelmezze a SQL server, amikor megnézed az adatbázisban egy SELECT-tel.
Ha más biztonsági szempontok is érdekelnek, akkor
1. ne tárold a jelszót az adatbázisban kódolatlanul és főleg ne küldd át az interneten! (md5, ssl okos használata)
2. időegység alatt ne engedj túl sok próbálkozást a belépésre (ahogy azt már az előttem szólók is írták nagyon helyesen)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!