HTML5安全剖析:当地存储

在上一篇文章《》中,咱们讨论了在HTML5下的跨域消息传递。本文将带你去了解另外一个特征——当地存储。

当地存储

当地存储也是HTML5的新特征之一,最开始是在Mozilla 1.5上的,后来渐渐被HTML5规范接受。经由的localStorage和sessionStorage工具,咱们能够应用HTML5的这个新特征。基于键值值匹配,这些工具允许咱们存储,检索和删除数据。

在HTML5中,当地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该能够很清楚的辨认二者的区别,前者是一直存在当地的,后者只是伴随着session,窗口一旦关闭就没了,二者用法完全相同。

上面是一个HTML5应用顺序示例,应用HTML5新的当地存储特征,咱们能够应用 “Show Data”按钮检索存储在中的数据。

咱们先来看看这个站点的源,假设https://localhost:8383/为“应用顺序A”,整理一下:

Name: Application A

Origin: https://localhost:8383/

单击“Show Data”按钮

预期成果:咱们能够拜访应用顺序A存储在中的数据。

现在尝试经由差别源来拜访应用顺序A存储在中的数据。

假设这是应用顺序B,上面为详情:

Name: Application B

Origin: https://localhost/

注意了,应用顺序B与应用顺序A端口号差别,属于差别源。

点击“Show Data”按钮。

当我点击“Show Data”按钮的时候,明显感觉到网页没有反应,这是因为应用顺序差别源。

为了实验准确,咱们再次停止确认。咱们运行与应用顺序A同源的应用顺序C

Name: Application C

Origin: https://localhost:8383/

点击“Show Data”按钮,观察成果

很好,咱们能够从应用顺序C拜访到数据,因为它与应用顺序A同源。

结论,在上面的几个应用顺序中都应用相同的代码,但有些差别源。将数据插入应用顺序A的中,由于应用顺序B与应用顺序A差别源,所以拜访失败。而应用顺序C同源,成功拜访。

接下来,咱们来看看HTML5当地存储可能遭受的攻打

敏感数据存储

开发者可能在其中存储敏感数据,很可能被找出API KEY或者其他敏感数据。如果没有物理拜访设备,咱们能够应用XSS漏洞停止利用。上面这个例子描述了localStorage工具怎样存储数据,咱们能够应用函数添加键值对作为参数。

localStorage.setItem(“data”, “mydata”);

下图中,咱们能够看到Chrome将数据存储的路径

读取数据

localStorage.getItem(“data”);

继续从SQLite数据库读取这些数据

 

脚本注入

没有很好过滤SQLite中的数据,可能会招致脚本攻打,上面咱们来看一个简单的例子。

先存储一些数据,然后停止检索。

 

如果这些数据没有被很好的过滤,这可能会招致存储XSS漏洞。这一次咱们在消息框中输入

  1. img src='X' onerror=alert(1);> 

点击“Show Data”按钮,看看成果

如咱们所见,网页弹出警告框。

总结

本文讨论了HTML5当地存储特征是怎样工作的,以及同源策略限制是怎样应用于数据存储的。最后咱们对其中可能发生的攻打停止了解,期待下一篇文章吧。

【编辑推荐】

  1. TEL:(010)68476606】

转载自:https://netsecurity.51cto.com/art/201505/477192.htm

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《HTML5安全剖析:当地存储
本文地址:https://www.zhiletu.com/archives-4474.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微