我想针对XSS清除所有发帖请求。
$name = $_POST['User']['name'];
$tel = $_POST['User']['contact']['tel']
清除所有这些多维$ _POST数组以抵抗XSS攻击确实非常困难。这是我的解决方案。我想听听您的意见。您会接受这种正确的方法吗?不利之处是什么?
答案 0 :(得分:-2)
如果需要,此代码将清除每个POST请求。只需将其放在index.php或每个动作开始的地方(Laravel的中间件,Yii2配置文件中的beforeAction等)
function clearXSS($data){
$data = filter_var($data, FILTER_SANITIZE_STRING);
}
$dimension = 0;
function clearPOST($post){
foreach( $post as $attr => $val )
{
if(is_array($val) && $dimension<=3){
$post[$attr] = clearPOST($val);
$dimension++;
} else {
$post[$attr] = clearXSS($val);
}
}
return $post;
}
if ($_POST) {
$_POST = clearPOST($_POST);
}