16

我正在尝试使用 localStorage 作为 cookie 替代品(讨厌 cookie),以便用户可以在我运营的网站上保持登录状态。

到目前为止,我的计划是将用户的用户名保存在 localStorage 中,并让站点检查 localStorage 中是否有任何内容,如果 localStorage 中有任何内容它将通过 POST 将 localStorage 数据推送到 PHP 文件并将用户推送到启动一个新的 PHP 会话并将它们返回到原来的位置。

尽管我有顾虑,但我知道可以查看 localStorage,在这种情况下,可能对数据服务器端进行加密是有意义的。

但是LocalStorage数据可以修改吗?如果没有,即使没有加密也可以这样做,但显然如果用户可以修改 localStorage 数据,他们将可以访问其他人的帐户,正如您可以想象的那样,这不是一件好事。

我有疑问,因为 JavaScript 可以由客户端在浏览器中执行,即:

javascript:alert("hello");

难道不可能找出localStorage的var名称并像这样重置它的值吗?

javascript:localStorage.setItem('sessionusername','superadmin');

基本上,我问:可以在客户端修改 HTML5 本地存储数据吗?

4

3 回答 3

23

本地存储绑定到域,因此在通常情况下,用户无法在任何其他域或本地主机上更改它。

它还受每个用户/浏览器的约束,即没有第三方可以访问本地存储。

然而,本地存储最终是用户文件系统上的一个文件,可能会被黑客入侵。

于 2012-06-28T14:38:45.193 回答
17

有一些插件,例如用于 Firefox 的Foundstone HTML5 Local Storage Explorer,它允许用户不仅可以localStorage全局浏览,还可以修改其内容:

本地存储资源管理器

所以我不相信没有人可以访问它或没有人可以改变它。至少从客户端来说,这很容易。从另一个网站来看,它可能更棘手,并且肯定会涉及“安全漏洞”,因为它不是预期的用途。

更新:与此同时,至少在 Firefox 中,您甚至不需要任何插件。只需按Ctrl+ Shift+ I,选择存储选项卡,然后在最左侧的列中选择本地存储- 您可以在其中查看甚至编辑您在前台选项卡中拥有的站点的本地存储:

本地存储浏览器
Firefox 内置的本地存储浏览器(单击图片查看更大的变体)

于 2013-08-08T14:02:25.477 回答
0

是的,它可以...

  1. 转到您要修改其本地存储的网站。
  2. 输入您的控制台(我在 Chrome 或 Edge 中按 F12)。
  3. 按顶部的“应用程序”选项卡。
  4. 选择菜单上的 localstorage,然后选择下面的网站地址。
  5. 现在,您面前有一个键和值列表。
  6. 按它们下方的第一个空白行,然后在左侧输入任何键,在右侧输入您希望的任何值。
于 2022-02-15T16:43:03.473 回答