MySQL-Anfragen gegen SQL-Injections schützen

Funktion:

QB_SECURE_MYSQL_PARAM

Zu verwenden auf Variablen, die dann in SQL-Anweisungen verwendet
werden. Durch das Maskieren von Sonderzeichen wird verhindert, dass
klassische SQL-Injection-Angriffe auf die Datenbank stattfinden
können.

Beispiele:

Säubern der Variable:

<br />
<?
php
  $sql_parameter 
QB_SECURE_MYSQL_PARAM($sql_parameter);
?><br />

Innerhalb einer MySQL-Anfrage ist die Funktion jeweils bei Werten
einzusetzen, die aus unsicherer Quelle kommen. Z.B. ganz beliebt,
das Suchen eines Datensatzes anhand der per GET übergebenen
ID:

<br />
<?
php
  
@mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
  
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
  
$sql "SELECT Titel,Datum FROM News WHERE Id=" $_GET&#91;'newsId'&#93;;
  
$result mysql_query($sql) OR die(mysql_error());
?><br />

Um auszuschliessen, dass ein Bösewicht den Wert der Variable
"newsID" manipuliert und so Zugriff zur Datenbank erlangt,
sichern wir den Wert der Variable ab:

<br />
<?
php
  
@mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
  
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
  
$sql "SELECT Titel,Datum FROM News WHERE Id=" QB_SECURE_MYSQL_PARAM($_GET&#91;'newsId'&#93;);
  
$result mysql_query($sql) OR die(mysql_error());
?><br />

Das könnte dich auch interessieren …