JavaScript DOM XSS 注入(inject)验证

标签 javascript regex dom utf-8 xss

将 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')" />

查看here (有点过时,但明白了要点)和 here更多示例

关于JavaScript DOM XSS 注入(inject)验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628185/

相关文章:

javascript - 如何将复选框(tickbox)的颜色从白色变为黑色?

java - 如何使用 Java 分隔符模式?

jQuery:如何选择名称为 xyz 的下一个元素?

javascript - 无法使用 jQuery (IE 8) 访问文档的标题元素

javascript - 进行选择下拉列表而不显示值

返回函数时出现 Javascript 问题?

javascript - jQuery 命名空间声明和模块化方法

Java正则表达式用于连续重复的字母、数字和特殊字符

regex - 为什么 `$str1 =~ "foo "` recognized as ` $str1 =~ m/foo/`(而不是语法错误)?

php - 从特定 id 名称开始的 DOM 中获取 div 数据