跨站点脚本(XSS):我是否需要逃离&符号?

时间:2012-02-03 05:31:26

标签: escaping xss ampersand

我想在HTML上下文中转换XSS,到目前为止我处理<>"个字符。 显然也建议逃避&符号,但为什么呢? (除了保持HTML有效之外,我们假设这不是问题)

所以我要问的是: 当我逃离<>"时,有人可以证明&符号在HTML上下文中仍然可以允许XSS攻击吗?

干杯!

2 个答案:

答案 0 :(得分:6)

你应该看看OWASP XSS预防备忘单。

你应该逃避&amp;因为它可以用来规避其他防御。请考虑以下代码:

<button onclick="confirm('Do you really want to delete <%= data_from_user; %> ?'">Delete</button>

为了防御onclick事件处理程序中的XSS,开发人员在data_from_user中转义',',&lt;和&gt;并认为一切正常。问题是如果攻击者键入&#39;通过转义,但最终允许攻击者运行javascript。

此处示例:http://erlend.oftedal.no/blog/?blogid=124

答案 1 :(得分:0)

你使用&amp;在URL中连接params:

反映XXS
脚本代码注入网页反映给受害者的URL

  

http://mybank.com/page?message=&lt; script src =“evil _script.js”/&gt;