Security 主要使用JWT的无状态身份验证真的安全吗?

Security 主要使用JWT的无状态身份验证真的安全吗?,security,authentication,jwt,single-page-application,stateless,Security,Authentication,Jwt,Single Page Application,Stateless,我一直有一个问题,JWT是否真的安全?因为在对声明和有效载荷进行编码时,我们可以很容易地对令牌进行解码,并且这个解码也在那里很好地给出。所以我的观点是,任何人都可以简单地使用burpsuite之类的工具更改auth头,并提供一些其他有效的令牌,对假用户进行身份验证。按照许多人的建议,将令牌存储在本地存储中也可能不太安全。所以我的问题是,与加密cookie或会话相比,它真的是安全的吗?无状态身份验证的好处是什么。?我读了很多文章说JWT适合单页应用。这是真的吗 访问令牌通常在调用者出示其硬凭证(如

我一直有一个问题,JWT是否真的安全?因为在对声明和有效载荷进行编码时,我们可以很容易地对令牌进行解码,并且这个解码也在那里很好地给出。所以我的观点是,任何人都可以简单地使用burpsuite之类的工具更改auth头,并提供一些其他有效的令牌,对假用户进行身份验证。按照许多人的建议,将令牌存储在本地存储中也可能不太安全。所以我的问题是,与加密cookie或会话相比,它真的是安全的吗?无状态身份验证的好处是什么。?我读了很多文章说JWT适合单页应用。这是真的吗

访问令牌通常在调用者出示其硬凭证(如用户名和密码)后发出。要访问受保护的资源,调用方需要向服务器发送访问令牌,以便对每个请求执行身份验证


在Web应用程序中,访问令牌不应由JavaScript访问,也不应存储在本地存储器中。相反,应通过HTTPS连接发送访问令牌,并将其存储在设置了和标志的cookie中:

Secure
属性将cookie的范围限制为“Secure” 通道(其中“安全”由用户代理定义)。当 cookie具有安全属性,用户代理将包括 HTTP请求中的cookie,仅当该请求通过 安全通道(通常是传输层安全性(TLS)上的HTTP)。[……]

HttpOnly
属性将cookie的范围限制为HTTP 请求。特别是,该属性指示用户代理 通过“非HTTP”API提供对cookie的访问时忽略cookie (例如向脚本公开cookie的web浏览器API)。[……]


在JWT中,有效负载是一个编码为Base64的JSON字符串。因此,它不适合存储诸如密码之类的敏感细节

签名令牌允许服务器执行无状态身份验证,也就是说,只需检查访问令牌内容就可以告诉用户是谁。服务器将不依赖外部服务来验证用户


JWT令牌应使用强加密密钥(必须在服务器上保持安全)进行签名,并且在信任令牌之前必须检查签名。

可能存在Okay的副本,因此如果我们希望在客户端访问令牌以获取用户,则应将其存储在Cookie中,对吗?这就是我想听到的,localStorage对于jwt来说并不安全,尽管很多人建议使用localStorage,但我总是发现很难在localStorage中存储任何东西。还有一件事,在使用签名之前如何检查签名?@AnikethSaha这可能会有帮助。@AnikethSaha如果答案有用,别忘了对它进行投票:)当然我做了。那么,我们应该使用jwt进行用户身份验证,还是仅限于api身份验证