首页 文章

来自浏览器扩展的CSRF令牌

提问于
浏览
0

我有一个快速的应用程序使用krakenjs / lusca来防止CSRF攻击,这适用于我的域内的所有路由 . 但是,我还有一个chrome扩展程序,我希望能够用来从任何域发布到应用程序 . 根据我的研究,我认为我应该使用基于令牌的身份验证,所以我有两个问题:

  • 如何生成该令牌并将其发送到扩展程序以允许该应用程序验证来自扩展程序的请求?

  • 如何将该令牌与扩展名一起存储?

我发现的答案涉及服务器发出请求的api,以及依赖本地存储的令牌存储(我认为这不会解决我的问题,因为扩展应该可以从任意域发出POST) . 我感谢任何帮助!谢谢 .

1 回答

  • 0
    • 您无法保护终端100%的分机,但有一些解决方案可以限制其他人以意想不到的方式使用它 . 最简单的解决方案是使用JsonWebToken . 服务器将加密具有预定义结构的对象,例如{email:'user_email@google.com',created_date:new Date()}并将其发送回扩展程序 . 当服务器收到扩展的请求时,它将尝试解密令牌,并在响应之前查看数据是否有效(遵循预定义的格式) . 为了更安全,您应该进行一些身份验证,例如让用户首先登录谷歌,看看他们是否真的是他们在发布令牌之前声称的人...我建议你研究OAuth2流程如何工作以获得参考!

    • 有几个选项可以在扩展名上存储令牌 . 我更喜欢将它存储在chrome.storage.sync https://developer.chrome.com/extensions/storage#property-sync上 . 当扩展首次加载时,它应该检查是否存储了令牌,如果没有,则应该调用服务器来获取 .

相关问题