Kezdőoldal » Számítástechnika » Programozás » PHP-ben SQL Injection elkerülése?

PHP-ben SQL Injection elkerülése?

Figyelt kérdés

Sziasztok!

Eddig csak a regisztrációs formnál ügyeltem az sql injection kivédésére, de arra jöttem rá, hogy szerintem az összes olyan lekérdezésnél, ahol a felhasználó adhatja meg a paramétereket, meg kéne csinálnom sql injection ellenire.

Minden ilyen esetnél kéne, vagy csak bizonyos esetekben? Van valami gyors módszer, hogy ne kelljen mindenhol leellenőríztetnem, és hiba üzenetet kiíratnom?


2015. jan. 15. 10:24
1 2
 1/18 anonim ***** válasza:
0%
Keretrendszer pl.
2015. jan. 15. 10:29
Hasznos számodra ez a válasz?
 2/18 A kérdező kommentje:
és azt hogy csinálhatnám meg? Egy mindenhol includeolt fájlban létrehoznék egy saját query functiont, ami minden biztonsági óvintézkedést elintéz, majd meghívja a standardot? És akkor minden queryt az enyémre cserélek le?
2015. jan. 15. 10:34
 3/18 anonim ***** válasza:
0%
Letöltesz egy php keretrendszert, pl. cakePHP, feltelepíted localhost-ra, és a beépített, előre elkészített sql moduljával kérdezel le adatbázisból, és a beépített szintén előre megírt tisztító/védelmi funkciókat meghívod a szükséges adatokra.
2015. jan. 15. 10:45
Hasznos számodra ez a válasz?
 4/18 A kérdező kommentje:
És hogyan telepíthetem fel? A readme fájlban nem találtam semmit.
2015. jan. 15. 11:11
 5/18 anonim ***** válasza:
2015. jan. 15. 11:13
Hasznos számodra ez a válasz?
 6/18 A kérdező kommentje:
Bérelt szerveren van, és ott nem férek hozzá az apache-hez stb.
2015. jan. 15. 11:20
 7/18 anonim ***** válasza:

Ez az ami kell neked.


[link]


Amíg nem tudod, mi a helyzet, addig felejtsd el a keretrendszereket. Ilyen alap dolgokat plain php-val is meg kell, hogy tudj oldani, anélkül, hogy a framework a segged alá pakolná a megoldást.

2015. jan. 15. 11:23
Hasznos számodra ez a válasz?
 8/18 anonim ***** válasza:
mysql_ funkciók már nem használatosak és ki lesznek vonva. Inkább PDO és bindParam. Ez adatbázisba mentéskor elvégzi a biztonsági dolgokat, de lekérdezésnél már nem (feltétlenül). Megírod hozzá a tisztító funkciókat, vizsgálatot mentés előtt.
2015. jan. 15. 11:36
Hasznos számodra ez a válasz?
 9/18 A kérdező kommentje:

Azeléggé megkönnyítené a dolgomat, mert akkor csak az update-s dolgoknál kéne átírnom, nem?

És hogyan működik?Hogyan használhatom?

2015. jan. 15. 11:44
 10/18 anonim ***** válasza:

Ha a lekérdezésben van felhasználói bemenet is, MINDIG paraméteres lekérdezést használj! Ne próbáld escapelni a karaktereket, ezek a különböző módszerek biztonsági hibákat rejthetnek, rejtenek.


A paraméteres lekérdezést pont ezért találták ki. A lényege az, hogy előkészítesz egy lekérdezést, amiben megjelölöd hogy hol vannak a paraméterek. Ezt az előkészített paraméteres lekérdezést elküldöd a szervernek a paraméterekkel együtt, és az SQL szerver fogja a paramétereket közvetlenül feldolgozni, a paraméterek soha sem fognak a lekérdezés részévé válni.


PHP 5-től kezdődően mysql_* parancsok helyett a mysqli_* parancsokat kell (kéne) használni, ez sokmindenben jobb mint az elődje, többek között támogatja a paraméteres lekérdezéseket.


Példakódokat a paraméteres lekérdezésről itt találsz:

[link]


Ezen kívül van lehetőség a PDO használatára is. A PDO nem csak mysql adatbázisokat támogat.

2015. jan. 15. 17:22
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!