我正在通过我的网站并进行安全审计。我只是接受了我需要清理所有用户输入的事实,但我从来没有真正停下脚步,尝试过真正发生的事情。我现在开始尝试。PHP安全和XSS攻击 - 获取错误拒绝执行JavaScript脚本。在请求中找到脚本的源代码
我在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攻击会做什么吗?我误解了什么吗?
您是否检查了javascrpt控制台的错误? – symcbean 2012-08-01 22:49:00
@symcbean - 我刚查过。是的,有一个错误。 “拒绝执行JavaScript脚本。在请求中找到脚本的源代码。” – 2012-08-01 22:52:20
使用'htmlspecialchars($ _ POST [“first_name”],ENT_QUOTES);'而不是 – zerkms 2012-08-01 22:53:46