是否可以在客户端浏览器中列出本地存储的所有源中的所有本地存储数据?
我知道跨站点脚本(XSS)可以获取/修改不同来源的本地存储数据。为此,它需要知道其他站点的源URL - 因此,如果XSS不知道源站点,它仍然可以找到列表并更改跨站点本地存储数据。
我的想法是将数据保存在本地存储中并将其附加到随机源,而源将是客户端的关键。因此,基于该密钥,我可以从locastorage中的特定源获取数据。整个想法是阻止其他网站访问这些持久数据。
答案 0 :(得分: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);