【发布时间】:2011-12-07 03:19:29
【问题描述】:
我发现了 HTML5 的“localStorage”功能。据我了解,它只允许保存字符串,因此我们还需要使用 eval()/JSON 来保存对象/函数。
现在我想知道是否可以保存一个可以用 eval() 执行但无法读取的字符串。
所以我想只使用一次 localStorage.setItem,完全禁用 localStorage.getItem 并将其替换为“localStorage.evalItem”之类的东西。
这将是对抗 XSS/MITM 的安全方法(在保存函数之后)。
编辑:
详细信息:这个想法是保存类似于:
function aes_encode(string) {
var salt='unique_salt';
// aes encoding...
return salty_encoded_string
}
在访问者端的非(源)可读存储主机中。
由于每个访问者都会创建一次唯一的盐,因此可以验证客户端数据。
但正如 James 和 nwellcome(谢谢!)所说,避免阅读源代码是不可能的。
我不认为投反对票是正确的,还是问题如此不清楚?!
【问题讨论】:
-
可以用 eval() 执行但无法读取的字符串 - 没有这样的东西。你可以让它难以阅读,但绝不是不可能的。
标签: javascript json html eval local-storage