代码之家  ›  专栏  ›  技术社区  ›  Hany Sakr

Spring安全和CSRF攻击

  •  0
  • Hany Sakr  · 技术社区  · 7 年前

    我正在开发一个java web应用程序,它应该非常安全,所以我在SSL服务器上应用了spring安全和spring MVC,并启用了CSRF;我使用POST成功地提交了所有表单以及生成的CSRF令牌,但是一些页面有GET方法,如果任何攻击者从任何浏览器打开任何页面的源代码,他可以在表单标签内看到生成的CSRF令牌,那么他可以使用它将任何内容发布到我们的网站,只要被攻击的用户激活会话!!我说得对吗?

    我应该做些什么使网站非常安全?我是否应该在spring security的基础上使用其他开源软件来应对跨站点脚本等攻击?我应该强制所有页面使用POST来避免任何CSRF攻击吗?

    更新

    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    Cache-Control: no-cache, no-store, max-age=0, must-revalidate
    Pragma: no-cache
    Expires: 0
    X-Frame-Options: DENY
    

    因此,我认为使用GET-in-spring安全性来处理csrf是安全的,而不必担心有人读取GET页面中的令牌,除非攻击者使用XSS攻击进行提交

    2 回复  |  直到 7 年前
        1
  •  3
  •   TheGreatContini    7 年前

    所以这里没有什么可担心的。不要惊慌。

        2
  •  0
  •   shazin    7 年前

    但是,有些页面有GET方法,如果有攻击者打开 我们的网站只要会话处于活动状态,就会受到用户的攻击!! 我说得对吗?

    是的,你是对的,使用GET会让你的网站泄露敏感信息。这就是为什么 Spring Security RFC Specification

    我应该做些什么使网站非常安全?我应该用其他的吗 开源和spring security,以涵盖其他攻击,如

    Spring安全框架不是万能的。使用它并不能神奇地使您的web应用程序百分之百安全。尽管它涵盖了大部分安全漏洞,但我们必须确保以一种不会引入任何漏洞的方式进行编码。

    例如:

    在跨站点脚本的情况下,即使您使用Spring安全性,如果您从HTML输入框中获取一个值并直接保存它,而无需对其进行HTML编码,并将其显示在JSP文件中,如 ${value} 您将介绍XSS的可能性。