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_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
$sql = "SELECT Titel,Datum FROM News WHERE Id=" . $_GET['newsId'];
$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_HOST, MYSQL_USER, MYSQL_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['newsId']);
$result = mysql_query($sql) OR die(mysql_error());
?><br />