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數據只要不通過代碼特意的刪除或手動刪除,是永久保存的...