webForumDet fria alternativet

Funderingar om SQL-injections

Databaser & SQL

5 svar · 345 visningar · startad av Dr-man

Medlem sedan juli 2002732 inlägg
Frågan#1

Funderingar om SQL-injections

Så länge länken syns på detta vis, så borde det vara ok,
http://homepage/show.php,
och inte http://homepage/show.php?search=1
Där search får värdet från en text-ruta.

Använda enkelfnuttar runt variabler vid INSERT, UPDATE och DELETE,
förhindrar också injections.

Jag har rätt eller är jag helt ute och cyklar?

Medlem sedan juni 200032 967 inlägg
#2

Varför skulle den första länken vara mer ok än den andra? Det spelar ingen roll om värden skickas via querystring så länge användaren matat in dem på ett eller annat sätt.

Medlem sedan juli 2002732 inlägg
#3

Som sagt, så har lite svårt att begreppa SQL-injections, har läst några sidor om det på Internet utan att begripa det desto mer. Alltså hur man skydda på enklaste sättet mot SQL-injections?

Medlem sedan juni 200032 967 inlägg
Medlem sedan aug. 20039 340 inlägg
#5

Hur menar du syns? Menar du att du har method="post" i form-taggen? Det hjälper inte ett skvatt!
Om du använder php och MySQL kan du kolla följande:
http://se.php.net/mysql_real_escape_string

Medlem sedan juli 20033 147 inlägg
#6

I länken som nitro2k01 postade står det lite längre ner en funktion.

function quote_smart($value)
{
   // Stripslashes
   if (get_magic_quotes_gpc()) {
       $value = stripslashes($value);
   }
   // Quote if not integer
   if (!is_numeric($value)) {
       $value = "'" . mysql_real_escape_string($value) . "'";
   }
   return $value;
}

Använd den samtidigt som du kollar alla $_POST alt. $_GET-värden som skickas.

foreach ($_POST as $key => $value) {
   $_POST[$key] = quote_smart($value);
}
253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)