清除POST请求发出的所有输入

时间:2018-08-08 07:00:42

标签: post request xss each

我想针对XSS清除所有发帖请求。

$name = $_POST['User']['name'];
$tel = $_POST['User']['contact']['tel']

清除所有这些多维$ _POST数组以抵抗XSS攻击确实非常困难。这是我的解决方案。我想听听您的意见。您会接受这种正确的方法吗?不利之处是什么?

1 个答案:

答案 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);
}