// sanitize $_GET
array_walk_recursive($_GET, 'sanitize_input_array');
// sanitize $_SERVER
array_walk_recursive($_SERVER,'sanitize_input_array');
Sie wird in der include.php aktiviert und sonst nirgendwo.
$_POST und $_REQUEST werden nicht gefiltert !!
In der index.php gibt es die interessante Stelle (nach der Einbindung include.php)
$_POST und $_REQUEST werden nicht gefiltert !!
In der index.php gibt es die interessante Stelle (nach der Einbindung include.php)
$params = array_merge($_GET, $_POST);
$smarty = $gCms->GetSmarty();
$smarty->params = $params;
array_merge hat die Eigenschaft das Keys des zweiten Arrays die identisch in dem ersten vorhanden sind, den ersten überschreiben.
Das bedeutet - ungefilterte $_POST gelangen in die $params und können bei Schlüsselgleichheit $_GET überschreiben.
$params wird mit Smarty reichlich verwendet.
Mit anderen Worten hier gibt es eine Einflugschneise für böse Buben die ein wenig programmieren können.
$_POST kommt rund 678 mal im Quellcode vor, $_REQUEST 129 mal.
Nachtrag:
Die Funktion welche den Schutz bringen soll ist ein Witz:
Das bedeutet - ungefilterte $_POST gelangen in die $params und können bei Schlüsselgleichheit $_GET überschreiben.
$params wird mit Smarty reichlich verwendet.
Mit anderen Worten hier gibt es eine Einflugschneise für böse Buben die ein wenig programmieren können.
$_POST kommt rund 678 mal im Quellcode vor, $_REQUEST 129 mal.
Nachtrag:
Die Funktion welche den Schutz bringen soll ist ein Witz:
function sanitize_input_array(&$value, $key)Sie deckt noch nicht einmal annähernd das ab was böse Buben so fabrizieren.
{
$value = preg_replace('/\<\/?script[^\>]*\>/i', '', $value); //the i makes it caseinsensitive
$value = preg_replace('/javascript\:/i', '', $value); //the i makes it caseinsensitive
}
Keine Kommentare:
Kommentar veröffentlichen