我正在浏览我的网站并进行安全审核。我只是接受了我需要清理所有用户输入的事实,但我从未真正停下来尝试过真正发生的事情。我现在开始做实验。
我在 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 攻击会做的事情吗?我是不是误会了什么?