Php 使用foreach循环防止XSS 使用foreach是安全的还是会导致更多的安全漏洞?

Php 使用foreach循环防止XSS 使用foreach是安全的还是会导致更多的安全漏洞?,php,forms,foreach,xss,Php,Forms,Foreach,Xss,如果用户尝试注入数组,则htmlentities将生成一个通知,您应该在调用它之前检查字符串,否则: Notice: Array to string conversion 我一直在使用Acunetix(),如果您负担得起的话,它向我展示了我的代码中的缺陷foreach不会打开更多的安全漏洞,否则我们都会有麻烦。。如果您认为这可能会发生,那么您可能希望了解数据的清理。无论如何,您不应该更改$\u POST中的值。您在需要执行转义/清理的位置执行转义/清理,而不是在不知道如何使用数据的开始。您基

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

Notice: Array to string conversion 

我一直在使用Acunetix(),如果您负担得起的话,它向我展示了我的代码中的缺陷

foreach
不会打开更多的安全漏洞,否则我们都会有麻烦。。如果您认为这可能会发生,那么您可能希望了解数据的清理。无论如何,您不应该更改$\u POST中的值。您在需要执行转义/清理的位置执行转义/清理,而不是在不知道如何使用数据的开始。您基本上是在重新创建一个与魔法引号等价的html。@FROUTYP我只是想确保循环使用$\u POST变量是获取$\u POST下所有变量的有效方法。@MarcB为什么不在
$\u POST
中更改变量,人们总是这样说,但我不明白为什么?这仅仅是因为你想确保数据保持不变吗?我一定是误解了你的问题,抱歉。看看这个问题:$\u POST变量不总是字符串吗?当它是一个数字时发生的事件?不,您可以在此处发送数组更多详细信息我可以将您的输入名称从“user\u name”更改为“user\u name[$test]”,然后发布它,我会出错,或者您的错误日志可能会堆积起来
<?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>
Notice: Array to string conversion