localStorage保存对象,但不能读取其内容
localStorage to save an object without beeing able to read its content?
我发现了HTML5的"localStorage"功能。据我所知,它只允许保存字符串,所以我们需要使用eval()/JSON来保存对象/函数。
现在我想知道是否有可能保存一个可以用eval()执行但不能读取的字符串。
我想用localStorage。只设置一次setItem,禁用localStorage。并将其替换为类似"localStorage.evalItem"的内容。
这将是防止XSS/MITM的安全方法(在保存函数之后)。
编辑:详细信息:这个想法是保存类似于:
function aes_encode(string) {
var salt='unique_salt';
// aes encoding...
return salty_encoded_string
}
在访问端的非(源)可读存储主机中。
并且由于每个访问者都创建一次独特的盐,因此可以验证客户端数据。
但是正如James和nwellcome(谢谢!)所说,不可能不去阅读原文。
我不认为"不投票"是正确的,还是这个问题很不清楚?
根据经验,要防止XSS,不要相信来自客户机的数据。
包括本地存储中的任何内容。LocalStorage不像cookie那样具有HTTPOnly标志,从而使Javascript无法访问它。即使是这样,用户也可以使用调试工具来修改它。出于这个原因,我要警告不要在从localStorage获得的任何东西上使用eval()
。我鼓励您使用JSON sans eval来读取JSON对象,而不要在函数中使用它。通过使用适当的缓存和离线应用程序,您应该能够完成将函数放在localStorage中所能完成的任何事情。
localStorage.evalItem(key).toSource() == localStorage.getItem(key);
所以我不相信你的方法可以阻止任何人阅读如果它可以eval
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 三角库可以与firefox一起使用,但不能在Chrome中使用
- Highcharts可以从服务器加载数据,但不能更新
- 刷新GoogleMaps tile服务器可以使用JavaScript,但不能使用GWT
- node.js可以识别字符模式,但不能识别数字模式
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Javascript可以在chrome中使用,但不能在其他浏览器中使用
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- Rails Production-可以工作,但不能编辑/删除/创建记录
- 能够在Highcharts中看到值,但不能看到图形
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 通过Javascript SDK登录Facebook可以在移动设备和本地主机上使用,但不能在台式机上使用
- jQuery/Javascript函数可以在Chrome中使用,但不能在IE11中使用
- localStorage保存对象,但不能读取其内容
- Jquery函数包含外部变量,但不能读取
- 棱角火 - $firebaseArray可以$add但不能读取