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


PHP Security and XSS attacks - Getting Error Refused to execute a JavaScript script. Source code of script found within request

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

我在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攻击基本上会做的事情吗?我是不是误解了什么?

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

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

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