在Spring Boot Web应用程序中禁用csrf的原因是什么?

时间:2018-09-17 08:19:07

标签: java spring spring-boot spring-security csrf

有很多教程,其中显示了如何禁用csrf,

csrf().disable()

(以及其他可能性,例如.properties.yml等) 但没有人解释他们为什么这样做?

所以我的问题是:

禁用它的现实原因是什么?
它可以提高性能吗?

3 个答案:

答案 0 :(得分:4)

  

禁用它的现实原因是什么?

Spring文档建议:

  

我们的建议是对普通用户可能由浏览器处理的任何请求使用CSRF保护。 如果您仅创建非浏览器客户端使用的服务,则可能要禁用CSRF保护。


  

它可以提高性能吗?

它不应该影响性能。过滤器(或其他组件)将从请求处理链中删除,以使该功能不可用。

  

在Spring Boot应用程序中禁用var REPLACE = [ {expression: www.anyhref.com, value: 'website'} ]; function(instance) { instance = function { var insteadURL; insteadURL: = REPLACE.match(function(expression) { return element.classList.contains(expression); }); return( insteadURL ? insteadURL.value : getElementText(expression) ); } } 的原因是什么?

  1. 您正在使用另一种令牌机制。
  2. 您要简化客户端与服务器之间的交互。

答案 1 :(得分:1)

Spring建议在为浏览器客户端服务时使用它,如果没有,则可能会禁用它:

  

我们的建议是对普通用户可能由浏览器处理的任何请求使用CSRF保护。如果仅创建非浏览器客户端使用的服务,则可能要禁用CSRF保护。

即使您使用服务器浏览器客户端,我也要补充一点,但是它仅在内部使用,您可能希望/能够将其删除。

答案 2 :(得分:-1)

是的,如果您具有无法隐藏的不同身份验证机制,则可以安全地禁用它。对于内部企业应用程序,没有太多的顾虑。 我们不得不禁用它,因为它干扰了我们现有的身份验证机制。