【问题标题】:CSRF prevention for AJAX call from extjs to Struts action [closed]从 extjs 到 Struts 操作的 AJAX 调用的 CSRF 预防 [关闭]
【发布时间】:2016-12-16 17:30:56
【问题描述】:

我需要在使用 ajax 发布请求(ExtJs 库)到 Struts 操作的应用程序中使用令牌实现 CSRF 攻击预防。在这种情况下如何实现令牌生成和验证?

【问题讨论】:

  • OAuth 2.0 (oauth.net/2) 怎么样?有很多支持它的 JAVA 库。
  • @oberbics 我只需要对少数请求实施预防,而且我不能用当前的授权过程做任何事情。
  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请参阅“如何提问”页面以获得澄清此问题的帮助。

标签: ajax extjs csrf


【解决方案1】:

在 ExtJS 中你可以使用这个:

Ext.Ajax.setDefaultHeaders({ token: 'xyz' })

此操作将为您将发送到服务器的每个请求添加标头。

在服务器端考虑使用 Spring Security。我推荐这个解决方案。

第二个(而不是最后一个选项) - 您可以编写自己的 servlet 服务和过滤器 - 身份验证(服务生成令牌) - 授权(请求令牌验证过滤器)。

【讨论】:

  • 您能否解释一下如何在客户端注入令牌。如果我理解正确,它应该在服务器端生成
  • 是的,令牌应该在服务器端生成。如何注入令牌?我刚写的。 ExtJS 中的每个请求都继承自 Ext.Ajax。所以 - 当您为此类设置默认标头时,每个请求都将使用此标头发送。我不知道您到底要做什么,但是实现客户端令牌的一种方法是发出请求。您收到令牌并像我上面写的那样设置它。当然,您可以使用登录表单或从服务器自动加载,或将其注入静态文件。有很多可能性。
猜你喜欢
  • 2014-12-13
  • 2015-03-11
  • 2014-09-17
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
相关资源
最近更新 更多