【问题标题】:Java library for filtering user-entered content? [closed]用于过滤用户输入内容的 Java 库? [关闭]
【发布时间】:2013-07-30 22:07:52
【问题描述】:

我正在做一个基于 Java 的 Web 应用程序。它允许用户输入内容,显示给其他用户。

自然出于安全原因,我必须过滤用户内容以防止 XSS 和其他攻击。

我了解过滤用户内容是一个备受讨论的话题。我在 SO 找到了很多帖子,但它们与理论讨论、PHP、想法等有关。我需要一个 Java 库来避免重写/发明一切。我觉得肯定有一个。

有这样的库我可以用吗?

感谢您提供任何信息!

【问题讨论】:

  • this这样的东西怎么样。
  • 鲍里斯,请您回复而不是评论吗?我有后续问题,想选择它作为答案。
  • 我认为重要的是不要通过字符串连接进行格式化。
  • 不知道为什么有人要关闭这个帖子。有人可以解释一下,以便我将来可以发布更好的帖子吗?
  • @EugeneMayevski'EldoSCorp,感谢您的信息。我了解该规则,并且确实看到了针对此类问题的许多疯狂讨论。但是,确实有很多很好的建议,其中包含有帮助的具体建议,例如这个。必须根据具体情况来决定。问候。

标签: java security filtering


【解决方案1】:

如果您想清理用户输入以防止 XSS,那么 OWASP 在他们的 AntiSamy 项目中提供了执行此操作的标准实现。

在名为owasp-java-html-sanitizer 的谷歌代码上有一个更好的实现,它允许您以编程方式定义策略,然后通过策略运行可疑的 HTML,这将消除所有废话。

这是他们网站上的一个例子:

PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);
String safeHTML = policy.sanitize(untrustedHTML);

这将创建一个策略,只允许可疑 HTML 中的格式和链接,其他所有内容都将被删除。

【讨论】:

  • 这个工具似乎满足了我的需要。你用过吗?有什么经验可以分享吗?
  • 是的,我在生产中使用它。唯一痛苦的事情是决定政策。我一直在寻找我想要的东西,但因为政策太紧而被剥夺了(、 等...)。我最终只使用了他们的示例Ebay policy。一旦你进行了排序,它就会非常好用。
  • 只是一个简单的问题。这个包如何处理错误的 html 标签?比如缺少结束标签、不正确的嵌套?
  • 我相信它尽最大努力尝试制作有效的 HTML,它试图推断出用户的意图。显然,如果 HTML 真的被破坏了,它只能做这么多......
  • 非常感谢您所做的一切!最好的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多