捕获 XSS(跨站点脚本)攻击的最佳正则表达式(在 Java 中)?

Jeff 实际上在 Sanitize HTML 中发布了有关此问题的信息。但他的例子是在 C

请先 登录 后评论

4 个回答

Community
^(s|w|d|<br>)*?$ 

这将验证字符、数字、空格以及 <br> 标记。 如果您想要更多风险,您可以添加更多标签,例如

^(s|w|d|<br>|<ul>|<ul>)*?$
请先 登录 后评论
DevelopingChris

您的示例中显示的正则表达式应该适用于任何语言。

那么是你想要的正则表达式,还是将这个逻辑放在正则表达式周围的 java 代码?

请先 登录 后评论
Brian

[sw.]*。如果不匹配,则说明您有 XSS。或许。请注意,此表达式仅允许字母、数字和句点。出于对 XSS 的恐惧,它避免了所有符号,甚至是有用的符号。一旦你允许

请先 登录 后评论
potyl

我不相信使用正则表达式是查找所有可疑代码的最佳方法。在处理损坏的 HTML 时,正则表达式很容易被特别欺骗。例如,Sanitize HTML 链接中列出的正则表达式将无法删除所有在元素名称和属性“href”之间具有属性的“a”元素:

请先 登录 后评论