【问题标题】:Prevent Access to Local Storage via Developer Tools?防止通过开发者工具访问本地存储?
【发布时间】:2014-12-22 17:56:25
【问题描述】:

我知道关于本地存储的evilsgood 的讨论很多。还有 Chrome hacks 用于禁用用户/访问者从控制台运行 JavaScript 的能力效果有限

这些都没有解决我的问题:你能阻止用户在浏览器中编辑本地存储值吗?

这永远不会是当前问题的理想或永久解决方案,我只需要一种方法来做到这一点,直到我们可以重构代码库以使用 IndexedDB

编辑:此应用的本地存储中没有处理任何敏感数据,仅对内部网络上的本地用户可用。少数用户了解到可以编辑一些数据点,而项目所有者关心的是这些用户。

【问题讨论】:

    标签: javascript html security google-chrome web


    【解决方案1】:

    不,你不能。即使有一个临时的“解决方案”或看似有效的破解,它仍然是网络,所以没有办法阻止对它的访问。试图阻止用户访问自己系统上的资源注定要失败。

    我能想到的在浏览器内部读写本地存储的方法:

    • 在页面中注入JavaScript来读取本地存储;
    • 创建自己的浏览器或浏览器插件;
    • 读取%LocalAppData%\Google\Chrome\User Data\Default\Local Storage中的SQLite数据库。

    【讨论】:

      【解决方案2】:

      你不能这样做。没有办法以这种方式控制用户的浏览器,而且不应该。这与互联网的本质是对立的。您的服务器发布代码。人们使用某种浏览器来使用该代码。而已。一旦提供代码,您就无法控制读取您的代码的内容或它对代码的作用

      您的安全方法是完全错误的。您无法在客户端保护它。

      您可以从一开始就安全地使用 localStorage。这意味着您不能信任其中存储的任何数据,并且您不能在其中存储您不希望用户阅读的任何内容。在那里,或者在 cookie 中,或者在 IndexedDB 中,或者在 any 客户端数据存储中。安全性来自固有地不信任任何用户提交的数据。您需要验证用户发送到您的服务器的所有数据,句号。试图阻止他们更改数据是行不通的,因为他们只能编写自己的数据。他们可以产生一个请求,将 anything 发送到您的服务器。

      如果您将敏感数据存储在 localStorage 或任何其他客户端数据存储中,那么您的做法是完全错误的,您需要放弃这种方法,因为它无法挽救。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-05
        • 1970-01-01
        • 2013-12-13
        • 2018-09-04
        • 2015-09-16
        相关资源
        最近更新 更多