Seite 1 von 1

Schutz vor SQL-Injection

Verfasst: Mi 22.Aug, 2007 11:29
von bce
bringt die folgende funktion einen sicheren schutz vor sql-injection oder kann man drauf verzichten?

Code: Alles auswählen

/* Verarbeitet Variablen zum Schutz vor SQL-Injection-Attaken: */
function secure_sql($value){
  if (get_magic_quotes_gpc()) {
    $value = stripslashes($value);
  }
  if (!is_int($value)) {
    $value = "'" . mysql_real_escape_string($value) . "'";
  }
  
  return $value;
}
der aufruf sieht folgendermasen aus:

Code: Alles auswählen

$sql = "SELECT * FROM tablename WHERE remote = ".secure_sql($ipaddress);

Verfasst: Mi 22.Aug, 2007 12:14
von Giga4000
Ja, das tut sie. Nur würde ich bei Ip-Adressen die php-Funktion ip2long verwenden, und die IP-Adressen dann als integer speichern.

Bei integer-Werten reicht ein einfaches (int) $ipaddress um vor SQL-Injection zu schützen. Damit wird die Variable nach integer umgewandelt und dadurch alle anderen Zeichen entfernt!