Jwt 在Blazor客户端Wasm中存储承载令牌?什么';策略是什么?
使用ID4和其他方法通过PKCE安全地获取JWT承载,并使用刷新,从Blazor Wasm安全地调用API,有很多好的例子。。。非常有用。但是所有的样本都说要将JWT存储在本地存储中。这不危险吗?我想是的,但我希望是错的 任何人都可以使用浏览器开发工具从本地存储中复制JWt。当然,要使JWT短时间存在,但刷新令牌需要存储在某个地方,所以问题并没有得到解决。当然,API可以有受众和作用域。。。但是blazor wasm可以从任何来源调用API。当然,ID提供者证书不可能创建具有有效sig的新JWT…但是复制的JWT仍然是危险的 React和Angular SPA也有同样的问题,而服务live Auth0通过定制JavaScript libs进行了大量工作,以缓解这个问题Jwt 在Blazor客户端Wasm中存储承载令牌?什么';策略是什么?,jwt,blazor,webassembly,Jwt,Blazor,Webassembly,使用ID4和其他方法通过PKCE安全地获取JWT承载,并使用刷新,从Blazor Wasm安全地调用API,有很多好的例子。。。非常有用。但是所有的样本都说要将JWT存储在本地存储中。这不危险吗?我想是的,但我希望是错的 任何人都可以使用浏览器开发工具从本地存储中复制JWt。当然,要使JWT短时间存在,但刷新令牌需要存储在某个地方,所以问题并没有得到解决。当然,API可以有受众和作用域。。。但是blazor wasm可以从任何来源调用API。当然,ID提供者证书不可能创建具有有效sig的新JWT
那么,Blazor在API调用之间在客户机上存储JWT的策略是什么?我们能不能只注入一个内存单例来存储JWT作为“appstate”对象的一部分?这种方法安全吗?还有更好的主意吗?wasm“内存”对原生应用程序的抗黑客攻击能力是否相当?好的,下面是我们得出的结论。欢迎评论
- 使用VS脚手架解决方案很好。这节省了很多时间
- 但是,由于JWT存储在会话存储中,因此搭建的解决方案非常容易受到重播攻击
我们还担心虚假恶意软件“VPN”重播,但这是一个MiM,和JWT的本地存储无关。一个令人高兴的巧合是,托普也会让我们更加坚强地面对这种威胁。顺便说一句,我读了一些关于Wasm记忆的资料。wasm高手黑客需要找到一个甚至稍微模糊的键值。因为我们是被MONO包装的,所以需要一个MONO wasm高手。所以我把钥匙的内存存储称为一个安全的选择。您的里程可能会有所不同。