React前端和REST API,CSRF

通过RESTful

API在前端使用React作为JWT的后端和授权,我们如何处理会话?例如,登录后,我从REST获得了JWT令牌。如果将其保存到localStorage中,我很容易受到XSS的攻击,如果将其保存到cookie中,除了将cookie设置为HttpOnly之外,其他问题相同,但是React无法读取HttpOnly

Cookies(我需要读取cookie来从其中获取JWT并使用这个带有REST请求的JWT),我也没有提到CSRF问题。如果您使用REST作为后端,则不能使用CSRF令牌。

结果,React with

REST似乎是一个糟糕的解决方案,我需要重新考虑我的架构。是否可以为您的用户提供一个安全的React应用程序,该应用程序可以处理REST

API方面的所有业务逻辑,而不必担心丢失其数据?

据我了解,可以这样做:

  1. React使AJAX调用REST API
  2. React从REST获取JWT令牌
  3. React写HttpOnly cookie
  4. 由于React无法读取HttpOnly cookie,因此我们在需要身份验证的所有REST调用中按原样使用它
  5. REST调用检查XMLHttpRequest标头,这是一种CSRF保护
  6. REST端检查cookie,从中读取JWT并进行处理

我在这里缺乏理论知识,但是逻辑看起来很安全,但是我仍然需要回答我的问题并批准这个“工作流程”。

回答:

  1. React使AJAX调用REST API

可以放心,有很多可使用的宁静资源客户端库

  1. React从REST获取JWT令牌

放心,这是智威汤逊应该做的

  1. React写httponly cookie

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

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

请放心,通过登录令牌(例如csrf)检查用户和权限,您可以将登录令牌放入请求标头中,然后在后端api中进行检查。将登录令牌绑定到您自己的Restful

lib将为您节省很多代码

  1. 调用时的REST检查XMLHttpRequest标头,CSRF保护的某种形式REST端检查cookie,从中读取JWT并进行处理

像大多数人一样放心。另外,将csrf令牌绑定到您自己的Rest库将为您节省很多代码

在标题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.

宁静的客户端https://github.com/cujojs/rest

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

example

以上是 React前端和REST API,CSRF 的全部内容, 来源链接: utcz.com/qa/423241.html

回到顶部