React前端和REST API,CSRF

MyMomSaysIamSpecial

通过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令牌绑定到您自己的静态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.

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

REST API和React前端-CORS

来自分类Dev

使用Express API和React前端防止CSRF

来自分类Dev

Rest API中的CSRF保护

来自分类Dev

带有REST API的Laravel CSRF保护

来自分类Dev

带有REST API的CSRF Laravel

来自分类Dev

@csrf_exempt无法用于Rest API

来自分类Dev

Spring CSRF令牌和API资源

来自分类Dev

具有ActionCable(WS)和React前端的Rails API

来自分类Dev

用于移动设备的REST Web API-CSRF保护?

来自分类Dev

带有前端的REST API

来自分类Dev

带有RESTFull API Laravel的Angular JS和CSRF

来自分类Dev

REST API 未从 React JS 前端接收到正确的 DateTime

来自分类Dev

使用REST API和javascript前端(例如Angular)进行模型验证的最佳做法

来自分类Dev

Git:关于目录结构,如何分离后端Rest Api和前端应用程序的版本?

来自分类Dev

使用REST API和javascript前端(例如Angular)进行模型验证的最佳做法

来自分类Dev

Git:如何在目录结构方面分离后端Rest Api和前端应用程序的版本?

来自分类Dev

使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

来自分类Dev

使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

来自分类Dev

REST API +前端-验证最佳做法

来自分类Dev

SPA使用的经过身份验证的Rest API:如何获取用于登录和注册表单的CSRF令牌?

来自分类Dev

带有身份验证的REST API中的CSRF令牌

来自分类Dev

Rails API和Rails前端站点

来自分类Dev

微服务,API网关和前端

来自分类Dev

如何过滤和删除数据库中的特定对象?| React作为前端,Rails作为后端/ API

来自分类Dev

是否可以使用自定义 UI 和前端框架(如 Angular/React)单独使用 ActiveAdmin API 端点?

来自分类Dev

如何将CSRF令牌从AngularJS前端发送到Spring REST服务后端?

来自分类Dev

API CSRF保护

来自分类常见问题

通过REST API将数据提供给前端时,是什么阻止了第三方访问和“挖掘”?

来自分类Dev

通过REST API将数据提供给前端时,是什么阻止了第三方访问和“挖掘”?

Related 相关文章

  1. 1

    REST API和React前端-CORS

  2. 2

    使用Express API和React前端防止CSRF

  3. 3

    Rest API中的CSRF保护

  4. 4

    带有REST API的Laravel CSRF保护

  5. 5

    带有REST API的CSRF Laravel

  6. 6

    @csrf_exempt无法用于Rest API

  7. 7

    Spring CSRF令牌和API资源

  8. 8

    具有ActionCable(WS)和React前端的Rails API

  9. 9

    用于移动设备的REST Web API-CSRF保护?

  10. 10

    带有前端的REST API

  11. 11

    带有RESTFull API Laravel的Angular JS和CSRF

  12. 12

    REST API 未从 React JS 前端接收到正确的 DateTime

  13. 13

    使用REST API和javascript前端(例如Angular)进行模型验证的最佳做法

  14. 14

    Git:关于目录结构,如何分离后端Rest Api和前端应用程序的版本?

  15. 15

    使用REST API和javascript前端(例如Angular)进行模型验证的最佳做法

  16. 16

    Git:如何在目录结构方面分离后端Rest Api和前端应用程序的版本?

  17. 17

    使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

  18. 18

    使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

  19. 19

    REST API +前端-验证最佳做法

  20. 20

    SPA使用的经过身份验证的Rest API:如何获取用于登录和注册表单的CSRF令牌?

  21. 21

    带有身份验证的REST API中的CSRF令牌

  22. 22

    Rails API和Rails前端站点

  23. 23

    微服务,API网关和前端

  24. 24

    如何过滤和删除数据库中的特定对象?| React作为前端,Rails作为后端/ API

  25. 25

    是否可以使用自定义 UI 和前端框架(如 Angular/React)单独使用 ActiveAdmin API 端点?

  26. 26

    如何将CSRF令牌从AngularJS前端发送到Spring REST服务后端?

  27. 27

    API CSRF保护

  28. 28

    通过REST API将数据提供给前端时,是什么阻止了第三方访问和“挖掘”?

  29. 29

    通过REST API将数据提供给前端时,是什么阻止了第三方访问和“挖掘”?

热门标签

归档