如果Web应用程序可以安全/可靠地使用,这不是一个问题!!
但是,如果我有一个会话或加密密钥,并希望在客户端使用javascript尽可能好地隐藏它 - 最好的方法是什么?
我想使用sessionStorage,直到我发现任何扩展程序都可以从内容脚本中读取此内容,至少在Chrome中是这样。在我看来,这是开发人员的一个很大的错误,因为他们将网页javascript隐藏在扩展程序中,但允许它看到网络存储。在任何地方都说扩展只能看到DOM,但我不认为大多数人认为这也包括网络存储!
那么如何保护会话密钥以使其远离扩展的范围?无法加密它,因为我只需要隐藏密钥。问题是会话必须对网站的所有页面都有效,所以我不能将它保存在javascript中,因为它会在每次页面加载时刷新。
在我看来,cookie一样糟糕!
注意:不知道这对其他浏览器是否也是一个问题
答案 0 :(得分:4)
如果允许访问您的网页,则扩展程序可以执行任何操作。
从内容脚本注入到<script>
标记到DOM的代码将执行,无论您的页面上下文中是否有CSP ,都将完全访问您的JS上下文。< / p>
甚至不提chrome.debugger
API。
所以不,您无法保护客户端数据免受用户同意在您的网页上运行的扩展程序的影响,就像您无法从浏览器本身保护数据一样。