2011-09-16 24 views
2

是否可以列出本地存儲在客戶端瀏覽器中的所有來源的所有本地存儲數據?列出所有來源的html5本地存儲數據

我知道跨站點腳本(XSS)可以獲取/修改不同來源的本地存儲數據。爲此,它需要知道其他站點的源URL,因此如果XSS不知道源站點,它仍然可以找到列表並更改跨站點本地存儲數據。

我的想法是將數據保存在本地存儲中,並將其附加到隨機源,並且源實際上將是客戶端的關鍵。因此,基於該密鑰,我可以從locastorage中的特定源獲取數據。整個想法是阻止其他網站訪問這些持久性數據。

+0

有趣的概念,但我敢肯定你不能直接要求其他網站的本地存儲(即使用本地存儲)。但我可以想象從站點b上的js腳本的站點a執行ajax請求,該腳本從站點b返回關鍵數據。嗯,我會給它一個旋轉。另一種選擇可能包括通過唯一ID(可能是加密的json文件)從雲存儲中提取數據。 – Mark

回答

2

window.localStorage.key是解決方案。 例子:

/* use high programming standards!! */ 
var i = 0, //i is standing for int 
    oJson = {}, //o is standing for object 
    sKey; //s is standing for string 
while ((sKey = window.localStorage.key(i))) { 
    oJson[sKey] = window.localStorage.getItem(sKey); 
    i++; 
} 
console.log(oJson);