在 Spring MVC 中防止 XSS 攻击

普拉尚潘迪

我正在开发一个当前易受 XSS 攻击的网站。当我读到它时,防止它的最好方法是:

  1. 验证任何用户输入。
  2. 清理和转义要在网页上显示的任何字符串。

对于第 1 点,我在客户端 (JS) 和数据持久保存到数据库之前验证用户输入。

对于第 2 点,我不太确定。在将字符串发送到 JSP 之前,我应该在将它们添加到 MVC 对象时清理和转义字符串吗?我发现这种方法的问题在于,带有字符串参数的对象实在是太多了,对它们中的每一个进行清理都会很痛苦。

SO 建议的最佳方法是什么?

谢谢!

米塔尔

对于第 1 点:

  • 客户端验证并不能确保防止 XSS,因为它可以被攻击者跳过。客户端验证的目的是指导合法用户提供所需的输入,而不是防止攻击者进行攻击。
  • 仅在保存到数据库不够时才进行验证。一旦收到用户输入,就必须在服务器端对其进行验证。根据应用程序,用户输入可能会在响应中流回用户,或者也可能通过应用程序范围的变量流向其他用户,而不会从数据库中读取(您的验证值)。

对于第 2 点:

  • 仅对那些作为用户输入的输出字符串进行清理和编码(以任何形式:请求参数、请求标头、请求正文、保存在数据库中的用户输入)。
  • 可以使用可用的编码库(如OWASP Java Encoder)在 jsp 页面中对输出字段进行编码
  • 如果您可以切换到 JSF,则它内置了 XSS 保护。详情请参阅

请参考OWASP XSS 预防备忘单

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

防止JSP中的XSS攻击

来自分类Dev

防止XSS攻击表单

来自分类Dev

href安全性,防止xss攻击

来自分类Dev

防止XSS攻击并正确编码字符

来自分类Dev

如何防止XSS攻击(php / pdo)

来自分类Dev

如何防止RESTful服务免受XSS攻击

来自分类Dev

防止XSS攻击并正确编码字符

来自分类Dev

Angular-如何防止RxJs fromEvent中的XSS攻击?

来自分类Dev

如何防止Django REST API CharFields中的XSS攻击?

来自分类Dev

Sakai cle中的iframe攻击(xss)

来自分类Dev

Antisamy或内容安全策略,或同时用于防止XSS攻击

来自分类Dev

Antisamy或内容安全策略,或同时用于防止XSS攻击

来自分类Dev

以下哪种方式可以更好地防止 XSS 攻击?

来自分类Dev

在数据库中保存实际值的同时防止Java Web App中的XSS攻击

来自分类Dev

如何应对XSS攻击

来自分类Dev

模拟XSS攻击无效

来自分类Dev

XSS攻击:替代OWASP?

来自分类Dev

如何应对XSS攻击

来自分类Dev

XSS攻击媒介

来自分类Dev

使用XML Content-Type阻止Jersey中的XSS攻击

来自分类Dev

从提交的数据中减轻XSS攻击-<字符是否是所有攻击的核心?

来自分类Dev

对Popover进行Bootstrap XSS攻击

来自分类Dev

Mysqli-参数化查询是否足以防止XSS二阶攻击?

来自分类Dev

在Symfony中防止XSS

来自分类Dev

内容安全策略拒绝v-html中的XSS攻击

来自分类Dev

在我的示例小提琴中,option.text()容易受到xss的攻击

来自分类Dev

如何在java中验证XSS攻击的soap webservice请求参数

来自分类Dev

在ASP.NET 4.5中,如何编码一个字符串以用作JavaScript变量,以防止XSS攻击

来自分类Dev

这容易受到XSS的攻击吗?