反XSS java库

反XSS java库,java,xss,Java,Xss,我正在寻找一个java库,它可以提供针对以下情况的保护。我正在编写一个服务器,希望验证我的用户输入不包含恶意javascript 您推荐哪一个库?您应该使用。()如果您想从用户那里接受HTML,那么AntiSamy或类似jsoup的东西是有意义的。但是,如果您只需要一组好的转义符,可以使用库,例如 我们有一个在线备忘单,它展示了如何在许多HTML上下文中使用它():如何在不同情况下防止XSS攻击的伟大文章发布在以下堆栈中:我已经成功地使用了HTML清理项目 可以定义策略(或使用预定义的策略),

我正在寻找一个java库,它可以提供针对以下情况的保护。我正在编写一个服务器,希望验证我的用户输入不包含恶意javascript


您推荐哪一个库?

您应该使用。()

如果您想从用户那里接受HTML,那么AntiSamy或类似jsoup的东西是有意义的。但是,如果您只需要一组好的转义符,可以使用库,例如


我们有一个在线备忘单,它展示了如何在许多HTML上下文中使用它():

如何在不同情况下防止XSS攻击的伟大文章发布在以下堆栈中:

我已经成功地使用了HTML清理项目


可以定义策略(或使用预定义的策略),使您能够控制在正在验证/清理的字符串上允许哪些类型的HTML元素。可以在清理HTML时使用侦听器,以确定哪些元素被拒绝,从而使您能够灵活地将此信息反馈给客户端。除了简单的实现之外,我还喜欢这个库,因为它是由OWASP制作和维护的,OWASP是一个长期存在的组织,其目标是web安全。

我写了一篇关于如何使用OWASP库清理输入的博文,可能会有帮助

如果执行XSS,则可能会重复,并且我认为AntiSamy不提供检测功能。您能推荐一个库来帮助检测相同的吗?XSS只有在浏览器上下文中成功执行后才能真正被检测到。但是,antisamy会生成一个错误列表,以便您可以查看拒绝特定DOM的原因。然而,在现阶段,自2013年以来就没有涉及过反垃圾邮件,因此可能无论如何都不应该使用它。我不会使用javascript来实现这一点——现在的大多数攻击都是基于DOM的,javascript有一种叫做monkeypatching的技术,可以让攻击者控制任何客户端功能。@avgvstvs如果攻击者已经获得了进行monkeypatching的能力,那么他基本上已经可以通过XSS做任何他能做的事情了。@MatthijsWessels我的观点是,作为一名web开发人员,前端对于实现任何类型的XSS预防来说都是错误的,因为服务器对浏览器中发生的事情没有控制权。浏览器始终不受信任。@avgvstvs它取决于应用程序。如果应用程序未呈现用户内容并因此执行,攻击者如何利用此漏洞?@user1459144,确保应用程序不呈现用户内容的唯一方法是1.)从不在浏览器中显示用户输入,2.)始终转义发送回相应上下文的用户数据。第一种适用于几乎可以扔掉的少数应用程序。第二,指示在页面负载到达用户之前,在后端完成转义。不要使用Jsoup进行安全验证。Jsoup的设计是“修复”无效的HTML,许多XSS攻击是故意无效的。。。所以Jsoup“修复”了它,您的验证可能会将其标记为良好。