gpt4 book ai didi

java - 将 csrf token 传递给客户端应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:03 24 4
gpt4 key购买 nike

我有一个网络应用程序,它分为两个单独的模块(客户端和服务器端)。服务器定义了REST服务,客户端调用REST服务来获取数据。我想让服务器免受 CSRF 攻击。因此,任何客户端 POST/PUT/DELETE 都需要在 header 中传递 csrf token ,并且 token 值应等于 session 中保存的 csrfToken。我的问题是,既然csrf token 是由服务器生成的,客户端应用程序如何获取 token 值?

如果客户端在登录后发送 GET 请求,服务器会生成 csrf token ,将其存储为 session 属性并将其发送回客户端作为响应,还是有更好的解决方案?

最佳答案

是否需要 csrf token 客户端取决于您想要什么?

csrf token 始终在服务器端后端黑盒逻辑的登陆页面或用户的第一个 ajax 请求上创建...

客户端意味着如果 jsp 那么你可以轻松编写代码,因为 jsp 位于服务器端,并且我们知道它作为程序员的所有好处......

如果在应用程序中我们使用 js 或基于 js 的框架 [如 extjs、dojo 采用 kit、angularjs、yui 或任何其他],并且我们的 View 是 .html 文件,那么我觉得我们会使用登陆页面....

登陆页面意味着首页...或者如果我们使用ajax,那么当用户访问我们的服务器时,用户向服务器发出第一个ajax请求...

通过第一个ajax请求或登陆页面,您可以生成一个 token 并在 session 中保存为csrf token ,在该用户的整个 session 之后,您必须通过编写过滤器来检查csrf token ...

在过滤器中必须检查用户 session 不为空,并且用户是登录用户,并且基于您的应用程序和 session 的权限具有 csrf token ...

因此,由于每个新用户都必须通过您的登陆页面[登录页面],并在服务器端获得一个 session ,因此不允许任何虚假请求,并且您拥有一个安全层

享受吧:)

关于java - 将 csrf token 传递给客户端应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27964860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com