login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mysql injection??

Offline bigsmoke - 18/04/2006 18:26
Avatar van bigsmokePHP interesse Als ik zo wat rond surf zie ik op veel plaatsen dat memberssystemen onveilig zijn: mysql injection. Wat is dit juist en hoe kan je het voorkomen??

12 antwoorden

Gesponsorde links
Offline skillat - 18/04/2006 18:29 (laatste wijziging 18/04/2006 18:30)
Avatar van skillat Onbekend addslashes
http://www.site...&id=11

htmlspecialchars
http://www.site...&id=12
Offline Rens - 18/04/2006 18:31
Avatar van Rens Gouden medaille

Crew algemeen
http://www.phpf...amp;page=4
en
http://www.secu..._Injection
Lees maar eens door.
Dan weet je wel wat beter wat mysql injection is.
Offline haytjes - 18/04/2006 18:39 (laatste wijziging 18/04/2006 18:40)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
mysql injection tegen gaan:

door de functie PHP.net: mysql_escape_string halen
en ook als je een getal in moet geven, errorcheck ofzo invoeren. Dus zorgen dat het dan ook een getal is.

  1. <?mysql_query("Select ... where id=".$_GET['id']);?>

=>
  1. <? if(is_numeric($_GET['id']))
  2. mysql_query("Select ... where id=".$_GET['id']);?>

  1. <?mysql_query("Select ... where id=".(int)$_GET['id']);?>
Offline stijnhau - 18/04/2006 18:45
Avatar van stijnhau Onbekend
  1. $url = substr($_SERVER['REQUEST_URI'], 1);
  2. if(eregi("%", $url) OR eregi(";", $url) OR eregi("'", $url) OR eregi("<", $url) OR eregi(">", $url) OR eregi(")", $url) OR eregi("query", $url) OR eregi("myqsl", $url)){
  3. die("geen aanval mogelijk");
  4. }


deze code houdt het via de url tegen.
Offline haytjes - 18/04/2006 18:48
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
die code hierboven zou 'k niet gebruiken, want hierdoor kan je geen leestekens ofzo in je url gebruiken, wat soms wel gebeurt. Gewoon je verstand gebruiken en mijn vorige post is meer dan genoeg.
Offline bigsmoke - 18/04/2006 20:48
Avatar van bigsmoke PHP interesse Ow bedankt dit is zeker nodig in elk script alles is zo omzeep.
Offline stijnhau - 18/04/2006 20:56
Avatar van stijnhau Onbekend leestekens in urls is niet zo safe he ik dnek wzel dat jullie zo slim zijn om dat niet te doen.
Offline Rens - 18/04/2006 21:36
Avatar van Rens Gouden medaille

Crew algemeen
Tuurlijk kan dat best safe zijn.
Als je maar htmlentities/mysql_escape_string/o.i.d. gebruikt.
Dan maakt het allemaal niks uit...
Offline stijnhau - 18/04/2006 21:50
Avatar van stijnhau Onbekend jah dan wel maar is grbuik er geen.
enkel de ids en zo vraag ik op.
is veiliger.
een id kunnen ze niet aanpassen(wel in url dus de get is beveiligt)
Offline haytjes - 18/04/2006 21:53
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
nee, voor mysql injection is leestekense en alle andere brol safe als je die mysql_escape_string gebruikt

voor XSS is da wat anders, dan moet je htmlspecialchars gebruiken
Offline bigsmoke - 19/04/2006 19:28
Avatar van bigsmoke PHP interesse Is met een is_numeric functie controleren genoeg of moet er nog iets bij zoals bij stijnhau?
Offline timo - 19/04/2006 19:57
Avatar van timo PHP ver gevorderde probeer gwn je aan te wennen alles wat je in een query (behalve tabelnamen) (dus oowk de where values etc. van je select) gebruikt door mysql_escape_string / mysql_real_escape_string (ook 1 toch?) / addslashes te halen
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.265s