gpt4 book ai didi

javascript - JWT 如何在 localStorage 中被破坏?

转载 作者:行者123 更新时间:2023-12-05 06:55:52 24 4
gpt4 key购买 nike

<分区>

我用谷歌搜索并阅读了很多关于 jwt 安全的文章。很多人说把token放在本地存储不安全。但实际上没有人给出一些 IN ACTION 的例子。例如 somoene 如何在本地存储中使用 jwt 进行 XXS 攻击?

我找到的唯一例子是这个:

https://www.youtube.com/watch?v=g21uHNIIewM

但他在 3:10 在这里解释的不是 xss 攻击,而是如果我无意中打开我的电脑时 somoene 访问我的电脑的可能情况,他可以从本地存储复制我的 jwt,保存它然后当他粘贴时到他家里的电脑,他可以访问所有内容,例如管理路由。

但是我没有找到这方面的例子,somoene 怎么能直接用 jwt token 做坏事。例如我有网络应用程序,用户需要注册并在登录后。我的 JWT 中有此有效负载,我将只向特定用户授予管理员 Angular 色(仅在开始时进行迁移,我将 admin true 授予某些用户,此后对于每个其他新注册用户,他都获得 admin - false )

{
"name": "John Doe",
"admin":false,
"id":1
}

例如,当用户登录时,我将从服务器发送的 jwt 保存在本地存储中。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9obiBEb2UiLCJhZG1pbiI6ZmFsc2UsImlkIjoxfQ.GY9qxlilipXdndTGHWGcI-BDIkZFV5xjxOW-EVTHCQs

我有管理面板我正在为他们隐藏路由,如果用户 Angular 色不是管理员则阻止访问 - 所以首先我从存储的 jwt 中读取有效载荷

let token = localStorage.getItem('token');
let jwtObject = JSON.parse(atob(token.split('.')[1]))
// and i get
{name: "John Doe", admin: false, id: 1}

我检查路线

if(jwtObject.admin == true) {...};

假设一些用户想用我的网络应用程序做一些坏事。他注册,他登录,他得到 jwt 有效载荷管理员是假的。例如,他还可以查看他的 token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9obiBEb2UiLCJhZG1pbiI6ZmFsc2UsImlkIjoxfQ.GY9qxlilipXdndTGHWGcI-BDIkZFV5xjxOW-EVTHCQs

在本地存储。他如何做“某事”以便他可以自己更改有效负载 - 让 admin 为真,即使它是从服务器发送的 false,之后他就可以访问管理面板的所有路由?

我在这里也标记了 angular 和 react,所以我会听到更多人关于他们使用的 java 脚本工具的意见和例子。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com