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

Pau*_*ert 3 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!'
Run Code Online (Sandbox Code Playgroud)

我开始玩这个,如果我输入诸如<script>alert('hello')</script>名字字段之类的内容,htmlspecialchars它是否有工作并且会隐藏标签.

当我删除htmlspecialchars脚本时没有转换它并在源中显示为<script>alert('hello')</script>BUT,它不会执行.

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

Exp*_*lls 5

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

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

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