PHP安全和XSS攻击 - 拒绝错误执行JavaScript脚本。在请求中找到的脚本的源代码

时间:2012-08-01 22:43:04

标签: php security xss code-injection

我正在浏览我的网站并进行安全审核。我只是接受了这样一个事实,即我需要清理所有用户输入,但我从未真正停止并尝试过真正发生的事情。我现在开始尝试了。

我在PHP页面上有一个典型的联系表单。这是_POST数据。 $_POST["first_name"];等。

我执行此操作$firstName = htmlspecialchars($_POST["first_name"]);来清理并显示如下所示的消息。

echo $firstName . ', thank you for your interest. We'll be in touch soon!'

我开始使用此功能,如果我在名字字段中输入<script>alert('hello')</script>之类的内容,则htmlspecialchars执行此操作并转换标记。

当我删除htmlspecialchars时,脚本未被转换,并且它在源中显示为<script>alert('hello')</script>但是它不会执行。

我的问题是,为什么不执行?这基本上不是XSS攻击会做的吗?我误解了什么吗?

1 个答案:

答案 0 :(得分:5)

当我在Chrome中尝试此操作时,我在控制台中看到错误:

  

拒绝执行JavaScript脚本。请求中找到的脚本源代码。

因此现代浏览器可以进行此检查以防止它。无论如何,你应该继续消毒你的输入,但检查你的控制台,你可能会看到这一点。