我试过下面的代码,但它似乎JavaScript运行在HTTP请求被发送到服务器之前。我该如何防止JavaScript在这种情况下使用PHP(http://my_host_here.com/publications.php/“><script> alert(1)</script>)?
感谢
<?php
class secure
{
function secureSuperGlobalGET(&$value, $key)
{
$_GET[$key] = htmlspecialchars(stripslashes($_GET[$key]));
$_GET[$key] = str_ireplace("script", "blocked", $_GET[$key]);
$_GET[$key] = mysql_escape_string($_GET[$key]);
return $_GET[$key];
}
function secureSuperGlobalPOST(&$value, $key)
{
$_POST[$key] = htmlspecialchars(stripslashes($_POST[$key]));
$_POST[$key] = str_ireplace("script", "blocked", $_POST[$key]);
$_POST[$key] = mysql_escape_string($_POST[$key]);
return $_POST[$key];
}
function secureGlobals()
{
echo "in here";
array_walk($_GET, array($this, 'secureSuperGlobalGET'));
array_walk($_POST, array($this, 'secureSuperGlobalPOST'));
}
}
?>
不知道你想在这里做什么。你只是把那些可怜的字符串弄得无法识别:)总是为了手头的任务而逃跑*只*。你能否在什么情况下澄清你想要阻止的事情? – 2013-02-26 00:41:16
请参阅[最终清洁/安全功能](http://stackoverflow.com/q/4223980) – 2013-02-26 00:42:06
您以后如何使用这些值?您是将它们存储在数据库中还是将它们打印到用户? – 2013-02-26 00:42:48