相关疑难解决方法(0)

JWT应该存储在localStorage还是cookie?

为了使用JWT保护REST API,根据一些材料(如本指南和此问题),JWT可以存储在localStorageCookies中.根据我的理解:

  • localStorage受XSS限制,通常不建议在其中存储任何敏感信息.
  • 使用Cookie,我们可以应用标志"httpOnly",这可以降低XSS的风险.但是,如果我们要在后端从Cookies读取JWT,那么我们将受到CSRF的约束.

因此,基于上述前提 - 最好将JWT存储在Cookies中.在每次向服务器发出请求时,将从Cookie中读取JWT并使用承载方案添加到授权标头中.然后,服务器可以验证请求标头中的JWT(而不是从cookie中读取它).

我的理解是否正确?如果是这样,上述方法是否有任何安全问题?或者实际上我们可以在第一时间使用localStorage逃脱?

security cookies restful-authentication local-storage jwt

68
推荐指数
4
解决办法
3万
查看次数

反应前端和REST API,CSRF

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

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

更新:

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

  1. React对REST API进行AJAX调用
  2. React从REST获取JWT令牌
  3. React写了httponly cookie
  4. 因为react不能读取httponly cookie,所以我们在需要身份验证的所有REST调用中都按原样使用它
  5. REST调用检查XMLHttpRequest头,什么是CSRF保护
  6. REST端检查cookie,从中读取JWT并执行操作

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

api cookies rest csrf reactjs

39
推荐指数
1
解决办法
2万
查看次数

img src链接中的授权标头

我有一个api使用jwt的authencation.我正在使用这个api的vuejs应用程序.我正在尝试使用应用程序在应用程序中显示图像

<img src="my/api/link" />
Run Code Online (Sandbox Code Playgroud)

但是api期望Authorization标题jwt token在里面.

我可以像这样在浏览器请求中添加标题(这里几个问题的回答让我相信它不可能)?

有没有办法(使用js)或我应该改变api自己?

html javascript jwt

30
推荐指数
6
解决办法
1万
查看次数

如果我使用基于令牌的身份验证,我应该如何加载图像

我在域上有一个客户端应用程序,在域上client-domain.com有一个服务器端应用程序server-domain.com.服务器端有一个API.客户端应用程序将AJAX请求发送到服务器端应用程序.我使用基于令牌的身份验证,因此客户端应用程序在每个AJAX请求的头文件中发送令牌,例如:"授权:承载{某些令牌}".当我需要获取或发布一些数据时,它可以很好地处理AJAX请求.

但服务器端API也保留文件.例如图像.文件是私有的,只有经过身份验证的用户才能获取它们.我需要在<img>标签的客户端显示这些图像.我无法使用它们,<img src="http://server-domain.com/path/to/image">因为在这种情况下,浏览器不会向服务器端发送Authorization标头.

采用的解决方案是什么?客户端应用程序如何从服务器端API加载图像?

authentication api ajax

20
推荐指数
1
解决办法
4926
查看次数

如何在 React 中获取 HTTP-only cookie?

我目前正在开发一个 MERN 堆栈应用程序,我使用的身份验证是 JWT 并将其保存在我的 cookie 中。这就是我在用户登录后发送 cookie 的方式。

              res
                .cookie("token", token, {
                  httpOnly: true,
                  secure: true,
                  sameSite: "none",
                })
                .send();
Run Code Online (Sandbox Code Playgroud)

我通过在后端获取“令牌”cookie 来登录用户。然而,我用这个应用程序实现了 Redux,每次刷新页面时,它都会自动注销。我想要的是在我的前端(React)中检测浏览器中的“令牌”cookie,但我无法获取它。我尝试过使用 npm js-cookie 但仍然无法得到它。有没有办法获得“令牌”cookie?或者根据我读过的内容使用 redux-persist ?请帮忙,谢谢。

cookies node.js jwt reactjs redux

11
推荐指数
4
解决办法
4万
查看次数

在哪里存储 JWT

我几乎没有开始阅读 JWT,我相信我了解 JWT 令牌是什么。我对 SESSIONS 也相当熟悉。我相信我了解每个人的优点和缺点。但是,有几个部分让我感到困惑。

当请求受保护的资源时,您需要在每个请求上发送 jwt,而不是将会话存储在服务器上。但:

1) 你如何存储你的 JWT 令牌以及在哪里。从我读到的内容中,我了解到您将身份验证请求发送到服务器,如果您成功通过身份验证,服务器会向您发送 JWT 令牌。那你怎么办?,你是否将 JWT 存储在 cookie 中,就像我在某些网站上读到的那样?如果是这样,你怎么做(使用 php,使用 javascript)。以及如何阅读。

2)使用会话时,或多或少您只是检查是否有会话来检查用户是否登录。使用JWT时如何完成此操作。

我也在一些页面上看到了这个:

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Run Code Online (Sandbox Code Playgroud)

这与此有什么关系(如果有关系的话)

javascript jwt

8
推荐指数
2
解决办法
4520
查看次数

在客户端将Json Web令牌JWT存储在哪里最安全?

您好stackoverflow社区!

我们使用nuxts.js框架构建了一个SPA应用程序,并且到了从后端API服务存储JWT令牌的最安全方式。

我们有两个带有httpOnly标志和localStorage标志的cookie。我阅读了大量有关这两种选择的比较的文章,尽管一半的开发人员支持cookie,一半的开发人员支持本地存储。

以我的观点,cookie似乎比localStorage在客户端存储JWT的方法更安全,但我想知道是否还有比上述选项更安全的方法。

所以我想了些事。Nuxt.js框架为我们提供了存储环境变量的机会。将JWT令牌存储为环境变量是否更安全,还是与上述选项完全一样,甚至更糟?

先感谢您!

security token jwt nuxt.js

8
推荐指数
1
解决办法
1422
查看次数

在哪里存储角度中的 JWT 令牌?

我正在使用 Django 和 Angular 构建一个应用程序。目前,我正在本地存储上存储后端发出的 JWT。但是,我担心 XSS 攻击。我应该使用仅 HTTP 的 cookie 来存储令牌吗?我还考虑将令牌存储在我的身份验证服务类中的变量字段中。但我不完全确定 Angular 是否在整个应用程序中共享该服务。我的身份验证服务只有一个实例吗?

jwt angular

8
推荐指数
1
解决办法
2万
查看次数

Firebase Auth 的本地(持久身份验证状态)是否安全且不受浏览器的 XSS 和 CSRF 影响?

我正在将 Firebase Auth 用于涉及金融交易的网络应用程序。因此,安全性对我的应用程序来说是最重要的。根据这个 doc,Firebase 可以通过将其存储在某个地方来跨多个会话保留其令牌。它没有提到它对 XSS 的安全性。当然,我可以假设它是安全的,因为它是谷歌,但我想了解更多。

我们都读过一些文章,指出 localStorage 存储身份验证是不安全的,而 cookie + csrf 令牌 + jwt + httpOnly 是处理浏览器身份验证的更安全的方式。

Firebase 如何存储其令牌?它使用 localStorage 或 cookie,还是两者的组合?

xss csrf jwt firebase firebase-authentication

7
推荐指数
1
解决办法
1981
查看次数

为什么不将 JWT 访问令牌存储在内存中并将刷新令牌存储在 cookie 中?

在处理基于浏览器的应用程序时,关于安全存储 JWT 令牌的主题已经提出了很多问题。共识似乎是应该使用仅限 http 的安全 cookie 。然而,当涉及短期访问令牌和长期刷新令牌时,存储 JWT 令牌似乎存在许多变化。

我已经确定了以下变化:

1. 将 JWT 访问令牌和刷新令牌存储在仅限 http 的安全 cookie 中

优点:

  • 无法从 Javascript 访问访问令牌和刷新令牌

缺点:

  • 引入 CSRF 漏洞,因此还必须添加 CSRF 令牌

这里的最佳答案建议添加 CSRF 令牌:/sf/answers/2617760071/

2. 将 JWT 访问令牌存储在内存中,并在仅限 http 的安全 cookie 中刷新令牌

优点:

  • 无法从 Javascript 访问刷新令牌
  • 通过 Javascript 发送访问令牌,因此访问令牌不易受到 CSRF 的攻击
  • 刷新cookie只能用于获取新的访问令牌。通过正确的 CORS 设置,恶意方无法通过跨站点请求从响应中读取访问令牌。因此,这种方法对于 CSRF 来说似乎是安全的。

缺点:

  • 可以通过Javascript访问访问令牌(但访问令牌很快就会过期)

在这里推荐,但收到的票数比顶帖少很多: /sf/answers/4451576811/

3. 将刷新令牌存储在内存中,并将 JWT 访问令牌存储在仅限 http 的安全 cookie 中

优点:

  • 无法从 Javascript 访问访问令牌
  • 通过 Javascript 发送刷新令牌,因此刷新令牌不易受到 CSRF 的攻击

缺点:

  • 可以从 Javascript …

authentication cookies csrf jwt

7
推荐指数
1
解决办法
4943
查看次数