将 HTML 嵌入 DOM 时,此正则表达式是否足以捕获所有跨站点脚本尝试。例如:例如使用 document.write()
(javascript:|<\s*script.*?\s*>)
本文档引用自 modsecurity.com http://www.modsecurity.org/documentation/Ajax_Fingerprinting_and_Filtering_with_ModSecurity_2.0.pdf
它会捕获 UTF-8 中的所有<\sscript.吗?\s*> 变体?
最佳答案
不幸的是没有。如果攻击者真的尝试的话,实际上有很多方法可以绕过该正则表达式。对于现代浏览器,该正则表达式应该做得很好,但它并不详尽。例如,类似这样的东西可以打开 javascript,而无需明确说明 script 或 javascript
<img src="blah.jpg" alt="" onmousedown="alert('a')" />
关于JavaScript DOM XSS 注入(inject)验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628185/