Eine bestehende, eventuell komplexere Website nachträglich vor Cross-Site-Scripting-Attacken (XSS) zur sichern, kann sich als sehr aufwändig erweisen. Mit diesem PHP-Skript, dass bei jedem Aufruf der Website vor allen anderen Funktionen ausgeführt werden sollte, lassen sich die meisten Angriffsszenarien entschärfen.
function xss_protect($string)
{
// nur Strings prüfen
if(!is_string($string)) return $string;
// eventuelle Kodierung berücksichtigen
$string=urldecode($string);
// Ausführbaren Code entfernen
$string=strip_tags($string);
$string=htmlspecialchars($string);
$string=filter_var($string, FILTER_SANITIZE_STRING);
return $string;
}
if(is_array($_GET)) $_GET = array_map("xss_protect", $_GET);
if(is_array($_POST)) $_POST = array_map("xss_protect", $_POST);
if(is_array($_REQUEST)) $_REQUEST = array_map("xss_protect", $_REQUEST);
$_SERVER['REQUEST_URI'] = array_map("xss_protect", $_SERVER['REQUEST_URI']);
$_SERVER['REDIRECT_QUERY_STRING'] = array_map("xss_protect", $_SERVER['REDIRECT_QUERY_STRING']);
$_SERVER['QUERY_STRING'] = array_map("xss_protect", $_SERVER['QUERY_STRING']);