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