使用foreach循环防止XSS

时间:2013-12-03 21:28:31

标签: php forms foreach xss

是否正在使用foreach安全措施,或者这样做是否会导致更多安全漏洞?

<?php

    foreach ($_POST as $key=>$value){
        $_POST[$key] = htmlspecialchars($_POST[$key]);
    }

?>


<form method="POST" action="">
    <input type="text" name="test" value="<?=isset($_POST['test'])?$_POST['test']:''?>"/> 
    <input type="submit" />
</form>

VS

<?php
     $_POST['test'] = htmlspecialchars($_POST['test']);
?>


<form method="POST" action="">
    <input type="text" name="test" value="<?=isset($_POST['test'])?$_POST['test']:''?>"/> 
    <input type="submit" />
</form>

1 个答案:

答案 0 :(得分:1)

如果用户尝试注入数组,那么htmlentities将生成通知,您应该在调用之前检查字符串,否则:

Notice: Array to string conversion 

我一直在使用Acunetix(http://www.acunetix.com/),如果你负担得起,它会向我展示我的代码中的缺陷