如何隐藏/保护客户端JavaScript中的会话/加密密钥从插件/扩展
问题描述:
如果Web应用程序可以安全地使用,这不是一个问题!如何隐藏/保护客户端JavaScript中的会话/加密密钥从插件/扩展
但是,如果我有一个会话或加密密钥,并希望尽可能在客户端用javascript隐藏它 - 什么是最好的方法?
我想使用sessionStorage,直到我发现任何扩展都可以从内容脚本中至少在Chrome中读取它。在我看来,这是开发人员的一个重大错误,因为他们隐藏了网页的JavaScript扩展名,但允许它看到网络存储。在任何地方都声明扩展只能看到DOM,但我不认为大多数人认为这也包括网络存储!
那么我怎样才能保护会话密钥,使其远离扩展的范围?无法加密,因为我只需要隐藏密钥。问题是会话必须对网站的所有页面都有效,所以我不能将它保存在JavaScript中,因为它在每次页面加载时都会刷新。
在我看来,饼干和我一样糟!
注:不知道这也是获准访问您的网页,可以做任何其他的浏览器
答
的扩展,出了问题。
注入为<script>
标签从内容脚本到DOM会在你的页面的上下文中执行不管你的CSP的代码,将您的JS上下文完全访问权限。
这不是要提及chrome.debugger
API。
因此,不能从用户同意在网页上运行的扩展程序中保护客户端数据,就像无法从浏览器本身保护数据一样。
但是,JavaScript代码受到保护是很奇怪的。在我看来,网络存储也应包含在内,以允许某种“隐私” – Beast
它不受保护;默认情况下它是隔离的,以防止与代码发生冲突,但如果需要,扩展CAN可以打破该障碍;简而言之:扩展程序不受网络限制,但反之亦然,因为它们的工作是与不知道扩展名的网站进行交互。 – Xan