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
 11/18 A kérdező kommentje:

Lehet, hogy félreértelmeztem az oldalt, de ez alapján egy insertes query 1 sor helyett, vagy 10 lenne. És ezt mindent egyes insertes querynél le kéne cserélnem.

Jól értelmeztem? Vagy van valami egyszerűbb megoldás?

2015. jan. 15. 17:33
 12/18 anonim ***** válasza:

Minden igényesebb, a biztonságra figyelő oldal így csinálja. 3 sor. És ezt a három sor-t nem fogod megúszni ha érdekel a biztonság. Tetszik vagy sem, ez van.


1. prepare

2. bind_param

3. execute


Nem kell feldolgozni a hibákat ha nem akarod:


$stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)");

$stmt->bind_param("i", $id);

$stmt->execute();

2015. jan. 15. 17:56
Hasznos számodra ez a válasz?
 13/18 anonim ***** válasza:

Mint előttem is utaltak rá: két lehetőség adott:

- PDO prepared statement használata: [link]

- mysqli real_escape_string: [link]


Ezeken felül (szóval szerveroldalon, a MySQL parancsoknál mindenképp szűrnöd kell az előbb leírt módok valamelyikével!) akár kliensoldalon Javascripttel, akár szerveroldalon ellenőrizheted (reguláris kifejezésekkel) az űrlapon megadott értékeket és visszajelezheted a felhasználó felé.

2015. jan. 15. 18:04
Hasznos számodra ez a válasz?
 14/18 A kérdező kommentje:
És tudnátok adni egy sqlinjectiont, amivel tesztelhetném a biztonságot?
2015. jan. 15. 18:26
 15/18 anonim ***** válasza:

Neked kéne ismerned a saját tábláidat és lekérdezéseidet..


Itt leírják milyen fajta sql injection-ök léteznek és miért működnek:

[link]


Paraméteres lekérdezésnél nem létezik sql injection, real escape stingnél pedig ha létezik is, biztosan nem publikus és nem egyszerű használni.

2015. jan. 15. 18:37
Hasznos számodra ez a válasz?
 16/18 A kérdező kommentje:
Nagy probléma, ha egyszerre csatlakozok mysqli_connect-el, és PDO-val is? És vegyesen használom a fájlban annak megfelelően, hogy a felhasználó tud-e paramétert megadni?
2015. jan. 16. 09:58
 17/18 anonim ***** válasza:
Dupla erőforrást használ akkor az oldalad, mert 2 kapcsolatot tart fenn a mysql szerverrel.
2015. jan. 18. 18:10
Hasznos számodra ez a válasz?
 18/18 A kérdező kommentje:
Közben már megoldottam prepare-el, és ugyan azt a kapcsolatot használja.
2015. jan. 18. 20:44
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!