3

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

我在 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>BUT,它不会执行。

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

4

1 回答 1

5

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

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

因此,现代浏览器可能会执行此检查以防止它发生。无论如何,您都应该继续清理您的输入,但请检查您的控制台,您可能会看到这一点。

于 2012-08-01T22:49:09.167 回答