为了账号安全,请及时绑定邮箱和手机立即绑定

你好,关于这种html5的localstorage设计,属于安全吗?

你好,关于这种html5的localstorage设计,属于安全吗?

蛊毒传说 2021-05-26 19:15:59

最近折腾html5,都说web存储是一大亮点,我简单看了下,分local storage和session storage,字面意思很容易理解
然后我查了下local storage的本地存储位置,我win10,360浏览器(真不想用这个,但是兼容旧版IE)默认位置在C:\Users\用户名\AppData\Roaming\360se6\User Data\Default\Local Storage,chrome 默认位置 C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\Local Storage 这个路径貌似没找到地方修改,注册表还没查,然不是重点
点开文件夹,我去,果然好多,果断删除之(强迫症要不得)
然后删除的时候看到文件名都是https_website_url_0.localstorage-journal和https_website_url_0.localstorage,数据在后一个文件里面,这就让我一下子想起来,这个属性号称是只有本域网页可以打开,额,应该不至于是我想的那样子吧?
果断写个测试也测试一发:测试随便找了个可以做在线代码演示的网站,然后代码复制到一个本地html,分别设置同一个key成不同的值,果然出现了4个文件(一个页面俩,本机那个命名是__0.localstorage)
然后关闭浏览器,调换俩localstorage文件名,再开原网页,接下里就是见证奇迹的时刻:
==========================================
local storage内的值果然交换了。。。。。交换了。。。。。换了。。。。了。。。了。。

==========================
所以,这很显然不是安全特性吧?
所以指望用local storage存点小秘密应该是不成了吧?
所以,额,有什么利用姿势?{捂脸逃}

查看完整描述

2 回答

?
若吾皇

TA贡献1564条经验 获得超6个赞

网页没有权限直接修改用户本地文件,只能用户主动触发上传或者下载(如点击事件或者Enter键触发),文件修改也只能在FileReader API内存中进行,关闭页面就释放了,修改完只能download,即使下载文件出现同名,浏览器也给文件自动加长文件名。
localstorage储存用户数据保持登录的话,也不会直接更不会明文存储用户密码,一般的做法会存一个具有时间的标识,用户首次登录账号密码成功后,服务器生成一个唯一标识给前端保存在localstorage,下次访问通过localstorage里的标识和服务器对比通过后才能登录,该次登录成功后立即销毁标识,生成新的标识传回前端,退出后立即删除这个标识。有时结合ID、KEY、(new Date).getTime()/随机数和cookie甚至document.domain等数据。
localstorage是不跨域的,只能同源读取。跨域数据能用iframe的postMessage,即使跨域传递了数据,也要iframe里面的网页接收和发送postMessage并读写localstorage,前提是网页自己暴露这个及不安全的接口。
关键就是,网页没有权限能像你一样手动修改localstorage文件名,或者诱导用户自己手动修改localstorage文件名。今天见多了也警惕了网络诈骗的网民们,不放心或者没见过的网站就连填个手机号码都不愿意,怎么引导他做这么复杂的操作,要进C:\Users\自己的用户名\文件夹,同时搜索到两个文件并同时修改两个文件,中途还要重启浏览器并回到之前的页面。能做到的肯定是有一定计算机基本安全意识的人,敢交给别人这么干的也一定是信任的人。

查看完整回答
反对 回复 2021-05-31
?
收到一只叮咚

TA贡献1591条经验 获得超4个赞

很明显你对localStorage的了解还不够,,你对H5的了解还不够

查看完整回答
反对 回复 2021-05-31

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信