Ga naar inhoud

php/SQL Beveiliging?


anoniem

Aanbevolen berichten

Goede dag heren, Kan iemand mij vertellen wat is de correcte wijze om sql injections in je querys te voorkomen? Dus wat moet je wel doen en wat moet je niet doen. Simpele Voorbeelden: select query: [code:1:da3f79dc38] $id = $_GET['id']; $sql = "select blaat from table where id = '$id'; [/code:1:da3f79dc38] insert query: [code:1:da3f79dc38] $blaat = $_POST['blaat']; $query = "INSERT INTO table (blaat) VALUES ('$blaat')"; [/code:1:da3f79dc38] Met vriendelijke Groet, Arno
Link naar reactie
$id = $_GET['id']; kun je vervangen door $id = intval($_GET['id']); zodat je zeker weet dat er alleen een getal in je query terecht komt. vang dan wel fouten af door code te schrijven die specificeerd wanneer een record niet gevonden is (doordat er bijv. tekst is ingevoegd) verder kun je de quotes escapen zodat er niet uit de ' kan worden gebroken door addslashes te gebruiker om in $_POST en $_GET elke ' en " te vervangen door \' en \". deze komt (aangepast) uit de php manual (staat er tegenwoordig niet meer in) en escaped als dit nodig is (wanneer magic quotes uit staat): [code:1:9d43b99d1d] function magic_slashes($element) { return ( is_array($element) ) ? array_map("magic_slashes", $element) : addslashes($element); } set_magic_quotes_runtime(0); if (get_magic_quotes_gpc() == 0) { $_GET = array_map("magic_slashes", $_GET); $_POST = array_map("magic_slashes", $_POST); $_COOKIE = array_map("magic_slashes", $_COOKIE); } [/code:1:9d43b99d1d] zo weet je zeker dat alles is ge-escaped en er toch niet teveel slashes worden toegevoegd....
Link naar reactie
Hallo, Ik bedoel met sql injections dat er mensen van buitenaf door bv te eikelen met ?id=iets er bijvoorbeeld ?id='eigenquery van maken. Zo maken zij met de ' het bijvoorbeeld mogelijk om eigen sql erin tebouwen. Vandaar dat ik vroeg wat de beste manier is om dit soort dingen te voorkomen. Maar in principe je select query de vars in '$var' te plaatsen zou veelal genoeg moeten zijn? Want er zijn ook andere methodes, zoals $sql = "select * from table where id = " . $var . " and etc etc ;
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...