当前位置:  开发笔记 > 程序员 > 正文

反应前端和REST API,CSRF

如何解决《反应前端和RESTAPI,CSRF》经验,为你挑选了1个好方法。

使用REST API作为后端,由JWT授权反应前端,但如何处理会话?例如,登录后我从REST获取JWT令牌,如果我将其保存到localStorage,我很容易受到XSS的攻击,如果我将其保存到Cookies,只有在没有设置HttpOnly时才会出现同样的问题,但是反应无法读取HttpOnly Cookies(我需要)读取cookie以从中获取JWT,并将此JWT用于休息请求),我也没有提到CSRF问题,如果使用REST作为后端,则不能使用CSRF令牌.

因此,使用REST的React似乎是糟糕的解决方案,我需要重新思考我的架构,如何成为?是否有可能为您的用户提供安全的响应应用程序,哪些业务逻辑在REST API端处理,而不必担心丢失数据?

更新:

据我所知,有可能这样做:

    React对REST API进行AJAX调用

    React从REST获取JWT令牌

    React写了httponly cookie

    因为react不能读取httponly cookie,所以我们在需要身份验证的所有REST调用中都按原样使用它

    REST调用检查XMLHttpRequest头,什么是CSRF保护

    REST端检查cookie,从中读取JWT并执行操作

我有缺乏理论知识在这里,但看起来逻辑和相当安全的,但我仍然需要回答我的问题,并批准该"工作流"的.



1> Josh Lin..:

    React对REST API进行AJAX调用

保证,有很多宁静的资源客户端库可用

    React从REST获取JWT令牌

保证,这是JWT应该做的

    React写了httponly cookie

我不这么认为,它不应该工作,但会话不是那么重要,它很快就会过时,并重新检查密钥操作的密码,即使是黑客在很短的时间内得到它,你可以用户登录时将会话令牌与IP绑定在一起,并在后端apis中进行检查.如果您希望它最安全,只需将令牌保留在内存中,并在打开新页面或页面刷新时重做登录

    因为react无法读取httponly cookie,所以我们在需要身份验证的所有REST调用中按原样使用它

保证,通过登录令牌检查用户和权限,如csrf,您可以将您的登录令牌放入您的请求标头,并在您的后端apis中检查它.将登录令牌绑定到您自己的restful lib将为您节省大量代码

    REST on calls检查XMLHttpRequest标头,什么是CSR的某种CSRF保护REST端检查,从中读取JWT并执行操作

像大多数人一样保证.此外,将csrf令牌绑定到您自己的restful lib将为您节省大量代码

在标题https://www.npmjs.com/package/express-jwt-token中使用用户令牌 Authorization JWT < jwt token >

在标题https://github.com/expressjs/csurf中使用csrf标记 req.headers['csrf-token'] - the CSRF-Token HTTP request header.

restful client https://github.com/cujojs/rest

与jwt做出反应https://github.com/joshgeller/react-redux-jwt-auth-example

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有