通过开发人员工具阻止访问本地存储?

时间:2014-10-27 14:15:30

标签: javascript html5 security google-chrome web

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

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

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

编辑:此应用的本地存储中没有处理敏感数据,仅适用于内部网络中的本地用户。有一些数据点可供少数用户学习,并且项目所有者关心的是这些用户。

2 个答案:

答案 0 :(得分:2)

不,你不能。即使有一个似乎有效的临时“解决方案”或黑客,它仍然是网络,因此无法阻止访问它。试图阻止用户访问他们自己系统上的资源注定要失败。

方法我可以想到浏览器外部的来读取和写入本地存储:

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

答案 1 :(得分:1)

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

您的安全方法完全错误。您无法在客户端确保这一点。

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

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