【发布时间】:2017-09-01 06:48:13
【问题描述】:
假设我有这样的事情:
<script>
var string = '<?= $_GET['var'] ?>';
</script>
为了防止 XSS,我想确保单引号被转义。 addslashes 可以做到这一点,但人们仍然可以通过将 $_GET['var'] 设置为 来突破。例如。
<script>
var string = '</script><script>alert(/test/)</script>';
</script>
也许我应该转义(使用\)单引号和<?这就是我需要逃脱的全部吗?
我想像这样的攻击现在更难了,因为浏览器经常禁止运行显示在 GET 字符串中的代码,但我仍然认为这是应该受到保护的东西。
【问题讨论】:
-
拇指规则:json_encode() 用于 JavaScript,htmlspecialchars() 用于 HTML
-
How to escape HTML的可能重复
标签: javascript php xss