localstoragehtml5
『壹』 html5中的localStorage什么时候会被清空
html5的localStorage用于存储一些临时的离线数据,
localStorage和file、database一样,是存储,有永久性质。
存入数据库的数据,不会在某一天突然被删除了。
保存到硬盘里面的文件,也不会再某一天突然消失了。
所以,localStorage本身没有时效性,因为storage毕竟不是ceche。
因此,只能用js手动清除了。
『贰』 html5 localstorage 超出5m怎么办
在这个网页上可以测试各种浏览器的最大限制,其中还给出了Firefox最大空间限制设置的方法,如下:
Adjusting quotas
Opera:
Doesn’t actually requires adjusting. You can however change default storage size at which Opera will propose increasing limit. It is defined by Domain Quota For localStorage option. It’s value is in kilobytes.
Firefox:
Go to about:config and search for “dom.storage.default_quota” option. It’s value is in kilobytes.
『叁』 html5 localstorage能存多少
每个浏览器对localstorage的支持大小是不一样的,chrome是5M ,IE10是1630K你可以用下面的js匿名函数测试不同浏览器对localstorage的支持大小
(function(){
if(!window.localStorage){
console.log('当前浏览器不支持localStorage!')
}
vartest='0123456789';
varadd=function(num){
num+=num;
if(num.length==10240){
test=num;
return;
}
add(num);
}
add(test);
varsum=test;
varshow=setInterval(function(){
sum+=test;
try{
window.localStorage.removeItem('test');
window.localStorage.setItem('test',sum);
console.log(sum.length/1024+'KB');
}catch(e){
alert(sum.length/1024+'KB超出最大限制');
clearInterval(show);
}
},0.1)
})()
IE的测试结果
『肆』 html5 localstorage 怎么取存储条数
1在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本地存储规范文档,可以在线查看
2http://dev.w3.org/html5/webstorage/
3 HTML5本地存储的前身就是Cookie,通过使用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存储在本地的所有信息。
攻击者也可以简单的使用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/框。
从这段代码可以看出,Twitter会使用localStorage方法把一些个人数据存储到本地,每次加载个人主页面的时候就会从本地存储获取数据,然后由于Twitter忽略了对去除数据的严格过滤,导致存储的代码会被当作HMTL编码执行,进而发生跨站攻击。
有关Twitter localStorage XSS 漏洞详的细信息可以查看:http://www.wooyun.org/bugs/ wooyun-2010-03075。虽然Twitter这个漏洞利用起来非常困难,但它再一次告诉我们:本着一切输入输出都是有害的原则,要对数据进行严格的输入输出过滤。
(4) 容易遭受跨目录攻击
localStroage存储方式不会像Cookie存储一样可以指定域中的路径,在localStroage存储方式中没有域路径的概念。也就是说,如果同一个域下的任意路径存在XSS漏洞,整个域下存储的数据在知道存储名称的情况下都可以被获取到。
假设下面两个链接是使用localStorage来存储数据:
用户xisigr和xhack各自的blog链接虽然属于同一个域,但却有不同的路径,一个路径为xisigr,另一个路径为xhack。假设xisigr用户发现自己的路径下存在存储型XSS漏洞,那么就可以在自己的blog中加入获取数据代码,其中核心代码为localStorage.getItem(“name”)。xhack用户并不需要登录blog,他只要访问http://h.example.com/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本地存储的应用会越来越多。
上面从理论上分析了 “恶意代码栖息的温床”的可能性。而从实际技术上的可行性也非常简单。下面是在本地留后门的核心代码:
以上分析,均出自天融信TopLAB前沿安全实验室的研究,希望借此文让HTML5的本地存储安全问题得到大家的广泛重视。HTML5非常精彩,但也存在风险,我们要做的工作还很多。
『伍』 html5的localstorage这种设计,额,这叫安全吗
网页没有权限直接修改用户本地文件,只能用户主动触发上传或者下载(如点击事件或者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\自己的用户名\文件夹,同时搜索到两个文件并同时修改两个文件,中途还要重启浏览器并回到之前的页面。能做到的肯定是有一定计算机基本安全意识的人,敢交给别人这么干的也一定是信任的人。
『陆』 html5 localstorage可以设置存储路径吗,怎么设置
html5 localstorage路径是固定的不可以修改,只能读取数据的。
localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将数据保存在客户端中,而客户端一般是指上网用户的计算机。在移动设备上,由于大部分浏览器都支持web storage特性,因此在android和ios等智能手机上的web浏览器都能正常使用该特性。 localStorage保存的数据,一般情况下是永久保存的,也就是说只要采用localstorage保存信息,数据便一直存储在用户的客户端中。即使用户关闭当前web浏览器后重新启动,数据让然存在。知道用户或程序明确制定删除,数据的生命周期才会结束。在安全性方面,localstorage是域内安全的,即localstorage是基于域的。任何在该域内的所有页面,都可以访问localstorage数据。但让然存在一个问题,就是各个浏览器厂商的浏览器之间的数据是各自独立的。也就是说,如果在firefox中使用localstorage存储一组数据,在chrome浏览器下是无法读取的。同样,由于localstorage数据是保存在用户的设备中的,因此同一个应用程序在不同设备上保存的数据是不同的。
『柒』 html5的localStorage进行数据储存
把相应的数据对用json对象的形式保存
比如 var jsonData = {'name':'lisi','age':'20','address':'fuzhou'};
再把json对象转成字符串 var str=JSON.stringify(jsonData);
然后就可以保存了 localStorage.setItem('addData', str);
到时候再把var getData = localStorage.getItem('addData')取出来后得到的也是字符串
所以还需把结果解析成json对象 var data = JSON.parse(getData);
这样就得到json对象数据了, 就有data.name='lisi',data.age='20' 一次类推
ps:数据也是可以和json对象一样进行处理保存的
『捌』 HTML5的local storage存储的数据到底存到哪去了
存在Web Storage中了,html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。
sessionStorage用于本地存储一个会话(session)中的数据,这些内数据只有在同一容个会话中的页面才能访问并且当会话结束后数据也随之销毁。
因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
『玖』 关于html5 的 LocalStorage 本地存储
以下是五大浏览器localStorage存储方式:
除了Opera浏览器采用BASE64加密外(BASE64也是可以轻松解密的)版,其他浏览器均采用明文存储权数据。
所以,建议不要使用localStorage方式存储敏感信息,那怕这些信息进行过加密。
以上参考《HTML5本地存储localstorage安全分析》
http://blog.csdn.net/yangdeli888/article/details/7735260
『拾』 html5 页面回退时localstorage怎样存储
h5本地存储localStorage,sessionStorage。 localStorage是没有失效时间的,sessionStorage的声明周期是浏览器的生命周期。 当浏览器关闭时,sessionStorage的数据将清空,而localStorage数据只要不通过代码特意的删除或手动删除,是永久保存的...