我正在尝试使用localStorage作为cookie替换(恶意cookie),以便用户可以在我运营的网站上保持登录状态。
到目前为止,我计划将用户的用户名保存在localStorage中,让网站检查localStorage中是否有任何内容,如果localStorage中有任何 ,它会将localStorage数据推送到一个PHP文件通过POST并推送用户启动一个新的PHP会话并将它们返回到原来的位置。
虽然我有疑虑,但我知道可以查看localStorage,在这种情况下,加密数据服务器端可能会有所帮助。
但是可以修改LocalStorage数据吗?如果没有,即使没有加密,也可以这样做,但很明显,如果用户可以修改localStorage数据,他们就可以访问其他人的帐户,这是您可以想象的,这不是一件好事。
我有疑问,因为JavaScript可以由浏览器中的客户端执行,即:
javascript:alert("hello");
难道不可能找到localStorage的var名称并重置它的值吗?
javascript:localStorage.setItem('sessionusername','superadmin');
基本上,我问:可以在客户端修改HTML5本地存储数据吗?
干杯, 卡兰:)
答案 0 :(得分:12)
有插件,例如Firefox Foundstone HTML5 Local Storage Explorer,允许用户不仅可以全局浏览localStorage
,还可以修改其内容:
所以我不相信没有人可以访问它或没有人可以改变它。至少从客户那里,可以轻松实现。从另一个网站,它可能会更棘手,当然会涉及一个“安全漏洞”,因为它不是预期的用途。
更新:同时,至少在Firefox中,您甚至不需要任何插件。只需按 Ctrl + Shift + I ,选择存储选项卡,然后在最左侧的列中选择< em>本地存储 - 您可以在其中查看甚至编辑您在前台选项卡中获得的站点的本地存储:
答案 1 :(得分:10)
本地存储绑定到域,因此在常规情况下,用户无法在任何其他域或localhost上更改它。
它也受每个用户/浏览器的约束,即没有第三方可以访问本地存储。
然而,本地存储最终是用户文件系统上的一个文件,可能被黑客入侵。