Mysql injection kivédése?
ja és ha mar erre jarsz erre is valaszlj pls:
http://www.gyakorikerdesek.hu/szamitastechnika__weblapkeszit..
Ha szöveg vagy karakterlánc megy az adatbázisba, akkor kell használnod a mysql_real_escape_string függvényt.
Viszont, ha az adatbázisba más típusú adat megy, akkor mást kell csinálj... át kell változtatnod a kapott paraméter típusát.
pl. ha szám akkor:
$egeszszam = (int) $egeszszam;
$valosszam = (double) $valosszam;
stb.
(ez azért működik, mert a PHP úgy alakítja át a szöveget számmá, hogy amit tud átalakít, a többit pedig elhagyja.
[link] )
Na most igazad van, sok esetben elég lenne a ' jelek kiszedése.
Viszont ha nem használod a ' karaktert számok bevitelekor akkor:
pl:
$q = "SELECT * FROM valami WHERE id=".$id;
legyen id = "0 OR 1"
ez lesz:
"SELECT * FROM valami WHERE id=0 OR 1"
Szóval így támadható. De ha odafigyelsz, akkor talán jó is lehet.
Gondolom a PHPhez értesz valamennyire... itt is a karakterláncokban ha pl "-t akarsz tenni akkor elébe rakhatsz egy \ jelet.
pl. $q = "\"";
A mysql_real_escape_string ugyanezt csinálja a ' jelekkel.
Ha érdekel a biztonság dolog, ezt is megnézheted XSS ellen. :P
(pl. ha egy javascript kódot írok egy kommentbe, ami átirányít máshova... ha a kommentemet ezen átfuttatod, akkor csak meg fog jelenni a kód, viszont ha nem, akkor simán lefut és mindenkit átirányít tőled egy másik oldalra :P)
Első vagyok.
Szerintem, ha hibát is adsz a ' jelekre és a < jelekre, az még önmagában nem elég. Pontosan nem tudom, hogy viselkedik a MySQL a számok esetében, de azt hallottam, hogy ha a szám helyett karaktereket is kap, fura, váratlan dolgok is történhetnek. (ezért javasoltam, hogy ami számként megy be az adatbázisban, azt alakitsd számmá PHPben is...)
Karakterláncoknál valószínűleg elég, ha hibát dobsz a ' jeleknél.
A < jelek pedig viszonylag gyakran használt írásjelek is lehetnek (pontosabban az oldalad témájától függ... pl. ha matek is van rajta akkor gyakran lehetnek ilyenek :P). Ezért jobb a htmlentities függvény a jelek tiltásánál.
(Ha angol nyelvű is az oldalad, akkor a ' jel is gyakori lehet, de a magyar nyelvben ritka.)
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!