将csrf令牌传递给客户端应用程序

k3fezbri  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(382)

我有一个web应用程序,它被分为两个独立的模块(客户端和服务器端)。服务器定义了rest服务,客户端调用rest服务来获取数据。我想让服务器免受csrf攻击。因此,任何客户端post/put/delete都需要在头中传递csrf令牌,并且令牌值应该等于会话中保存的csrftoken。我的问题是,既然csrf令牌是由服务器生成的,那么客户端应用程序如何获得令牌值?
客户端登录后是否应该发送get请求,服务器生成csrf令牌将其存储为会话属性并将其发送回客户端作为响应,或者是否有更好的解决方案?

jgwigjjp

jgwigjjp1#

它取决于你想要什么,如果你想csrf令牌客户端与否?
csrf令牌总是在登录页或服务器端后端黑盒逻辑中用户的第一个ajax请求上创建。。。
客户端意味着如果使用jsp,那么您就可以轻松地编写代码,因为jsp位于服务器端,作为程序员,它的所有好处我们都知道。。。
如果在应用程序中我们使用js或基于js的框架[如extjs、dojo Take kit、angularjs、yui或任何其他]并且我们的视图是.html文件,那么我觉得我们使用的是登录页。。。。
登录页是指第一页。。。或者如果我们使用ajax,那么当用户点击我们的服务器时,用户对服务器的第一个ajax请求。。。
通过第一个ajax请求或登录页,您可以生成一个令牌,并在会话中保存为csrf令牌。在该用户的整个会话之后,您必须通过编写筛选器来检查csrf令牌。。。
在过滤器必须检查用户会话不为空,用户是登录用户和权限的基础上,您的应用程序和会话有csrf令牌。。。
因此,每个新用户都必须通过您的登录页[login page],并在服务器端获得一个会话,因此任何虚假请求都是不允许的,并且您拥有一个安全层
享受:)

相关问题