Hallo,
ich arbeite weiter an der Kontrolle von $_GET-Werten, die über URL-Parameter übergeben werden. Nach hilfreichen Kritiken von mermshaus (danke!) sieht es nun so aus:
Alle Integer werden mit intval() überprüft. Müsste gegen Manipulationen sicher sein.
Andere mögliche Werte werden mit einer Whitelist geprüft. Die erlaubten Werte werden aus der DB in ein Array eingelesen und mit dem übergebenen Wert abgeglichen. Beispiel:
Anm.: Ich weiß, dass ich noch das alte mysql verwende. Das kommt später dran.
In der index.php wird die Funktion so aufgerufen:
Was meint ihr - kann man den Parameter "um" noch manipulieren?
Danke für gute Tipps.
ich arbeite weiter an der Kontrolle von $_GET-Werten, die über URL-Parameter übergeben werden. Nach hilfreichen Kritiken von mermshaus (danke!) sieht es nun so aus:
Alle Integer werden mit intval() überprüft. Müsste gegen Manipulationen sicher sein.
Andere mögliche Werte werden mit einer Whitelist geprüft. Die erlaubten Werte werden aus der DB in ein Array eingelesen und mit dem übergebenen Wert abgeglichen. Beispiel:
PHP-Code:
// Anti-SQL-Injection Parameter "um" (whitelist)
function param_um_check($um) {
include(_INCPFAD."db.php");
$array_umname = array();
$conttab_de = TAB_CONT."de";
$um_name = mysql_query("SELECT umname FROM ".$conttab_de." GROUP by umname;");
while ($zeile = mysql_fetch_object($um_name)) {
$umname = $zeile->umname;
if (!empty($umname)) {
$array_umname[] = substr (strrchr($umname, "_"), 1);
}
}
if (!in_array($um, $array_umname)) {
echo "<p>Not allowed</p>";
exit;
}
} // Anti-SQL-Injection Parameter "um"
In der index.php wird die Funktion so aufgerufen:
PHP-Code:
if ($_GET['um']) {
$um = strip_tags($_GET['um']);
param_um_check($um);
}
Danke für gute Tipps.
Kommentar