Kezdőoldal » Számítástechnika » Weblapkészítés » A PHP-s karakter formátum...

A PHP-s karakter formátum validálás nem elég védelem az SQL injenction ellen?

Figyelt kérdés

Most még csak tanulom a dolgot semmi nem megy élesben, de localhost-on csináltam egy bejelentkező rendszert MYSQLes adatbázissal, és hiába írom be, hogy "'OR''='" vagy vmi helytelennek jelzi és nem enged be


annyira nem másztam még bele, lehet csak pár idézőjel kérdése, és feltörném, vagy hogyan van ez?


Hogyha szűröm, az idézőjel és egyéb "nem-betű" karaktereket, az nem elég védelem?


Valszeg nem, de miért nem?



2016. máj. 1. 15:33
1 2
 1/11 anonim ***** válasza:

"Hogyha szűröm, az idézőjel és egyéb "nem-betű" karaktereket, az nem elég védelem?"

De elég lehetne...

Itt nézd meg hogy hogy is megy ez: [link]

2016. máj. 1. 15:38
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
Ha jól adod meg, hogy milyen formátumú karaktereket fogadjon el, akkor elegendő kell, hogy legyen.
2016. máj. 1. 17:20
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

preg_match("/^[a-zA-Z-0-9- ]+$/",$usname)


jelenleg ez van


de milyen esetben kell más fajta védelmet használni?

Miért nem szűrik le mindenhol a karakter típusokat, hogy ne lehessen hackelni?

2016. máj. 1. 17:40
 4/11 anonim ***** válasza:
100%

Például mert ez nem mindenhol elég.

Tegyük fel, hogy valódi nevet is be akarsz kérni.

Jön a pasas A három testőrből, és frankón úgy hívják, hogy D'Artagnan. Megmondod, hogy változtasson nevet? Az olasz meg francia nevek tele vannak aposztróffal, ami az egyik legveszélyesebb karakter SQL injection szempontjából.

Vagy jönnek a dánok meg a lengyelek az áthúzott betűs neveikkel...

2016. máj. 1. 17:53
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:
hehe igen, értem
2016. máj. 1. 18:22
 6/11 anonim ***** válasza:

Nézz utána: PDO

Példa egy prepare (előkészített SQL-re):


$stmt = $dbh->prepare("SELECT * FROM tabla WHERE nev = ? AND email = ?");

$stmt->execute([$_POST['nev'], $_POST['email']]);


Oszt letudva. SQL injektorokat meg ő maga lekezeli.


Ezek már kész megoldások, csak használni kell. Jah igen: már a nyelvekben is beleépítették, és nem csak a PHP-ra érvényez ez.


[link]

[link]

[link]

2016. máj. 2. 08:46
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

PDO is támadható:

$var = "\xbf\x27 OR 1=1 /*";

$query = 'SELECT * FROM test WHERE name = ? LIMIT 1';

$stmt = $pdo->prepare($query);

$stmt->execute(array($var));

2016. máj. 2. 10:46
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:
Nah erre kíváncsi vagyok. Ha haza értem, letesztelem.
2016. máj. 2. 12:31
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

Hmm.. javították. :-)

Mármint a PHP 5.5 -ös verzióban már nem megy.

2016. máj. 2. 12:59
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
Ez azért megnyugtató.
2016. máj. 2. 13:16
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!