Folgender Code am Anfang eines Script sollte alle an das Script übergebenen Daten sicher machen, indem ggf. addslashes verwendet wird. Damit wird SQL-Injektion unmöglich. Zusätzlich werden, falls register_globals aktiviert ist, diese Variablen gelöscht.
PHP-Code:
if( !@get_magic_quotes_gpc() )
{
$vars = array(
array(&$HTTP_GET_VARS, &$_GET),
array(&$HTTP_POST_VARS, &$_POST),
array(&$HTTP_COOKIE_VARS, &$_COOKIE),
array(&$HTTP_POST_FILES, &$_FILES),
array(&$HTTP_SESSION_VARS, &$_SESSION)
);
for($i = 0; $i<count($vars); $i++)
{
if( is_array($vars[$i][0]) )
{
while( list($k, $v) = each($vars[$i][0]) )
{
if( is_array($vars[$i][0][$k]) )
{
while( list($k2, $v2) = each($vars[$i][0][$k]) )
{
$vars[$i][0][$k][$k2] = addslashes($v2);
}
@reset($vars[$i][0][$k]);
}
else
{
$vars[$i][0][$k] = addslashes($v);
}
}
@reset($vars[$i][0]);
$vars[$i][1] = $vars[$i][0];
}
}
unset($vars);
}
if( (@get_cfg_var('register_globals') == true) || (@get_cfg_var('register_globals') === false) )
{
if( is_array($_REQUEST) )
{
while( list($k, $v) = each($_REQUEST) )
{
unset($$k);
}
}
}