【问题标题】:How to hide/secure session/encryption key in client side javascript from addon/extension如何从插件/扩展隐藏/保护客户端javascript中的会话/加密密钥
【发布时间】:2016-04-18 01:19:06
【问题描述】:

这不是一个问题,如果一个 Web 应用程序可以安全/可靠地使用!!

但是,如果我有一个会话或加密密钥,并且想用 javascript 在客户端尽可能地隐藏它 - 最好的方法是什么?

我想使用 sessionStorage,直到我发现任何扩展都可以从内容脚本中读取它,至少在 Chrome 中。在我看来,这是开发人员的一个大错误,因为他们从扩展程序中隐藏了网页 javascript,但允许它查看网络存储。到处都说扩展只能看到 DOM,但我不认为大多数人认为这也包括网络存储!

那么,如何保护会话密钥,使其远离扩展程序?无法加密它,因为我只需要隐藏密钥。问题是会话必须对站点的所有页面都有效,所以我不能只将它保存在 javascript 中,因为它在每个页面加载时都会刷新。

在我看来,cookie 一样糟糕!

注意:不知道其他浏览器是否也是这个问题

【问题讨论】:

    标签: javascript security session google-chrome-extension web-storage


    【解决方案1】:

    获得访问您页面的权限的扩展程序可以做任何事情。

    作为<script> 标记从内容脚本注入到 DOM 的代码将在您的页面上下文中执行无论您的 CSP,将完全访问您的 JS 上下文。

    更不用说chrome.debugger API。

    所以不,您无法保护您的客户端数据免受用户同意在您的页面上运行的扩展程序的影响,就像您无法保护您的数据免受浏览器本身的影响一样。

    【讨论】:

    • 但很奇怪,javascript代码受到保护。在我看来,还应包括网络存储以允许某种“隐私”
    • 它不受保护;默认情况下它是隔离的,以防止与代码冲突,但如果需要,扩展可以打破这个障碍;简而言之:扩展程序受到网络保护,但反之亦然,因为他们的工作是与对扩展程序一无所知的网站进行交互。
    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    相关资源
    最近更新 更多