HTML5安全

HTML5安全

HTML5新标签

html5出现了很多新标签,比如<video> <audio> <ifame sandbox> <a noreferer> <canvas>,下面简单介绍一下这几个标签。

<video src='xxx' onloadedmetadata='alert(\xss1\);' condurationchanged='alert(\xss2\);' ontimeupdate='alert(\xss3\);'></video>

<!--因为有的xss filter的黑名单中可能没有这些新的属性or标签,所以可能被绕过-->

 <!--不记录referer,保护用户的隐私-->
<a href='xxx' rel='noreferer'>
<area href='xxx'  rel='noreferer'>

标签<canvas>让js可以对图像进行操控;

安全问题

浏览器的同源策略限制了脚本的跨域请求,但是互联网越来越开放,对于web开发人员,必须想办法呢进行跨域传输,由此诞生了jsonp iframe等跨域技术。ajax也是允许跨域传输;

graph LR
    www.a.com:test.html--Origin-->www.b.com:test.php
    www.b.com:test.php--Access-Contorl-Allow-Origin-->www.a.com:test.html

只要来源符合头中的规定,就允许跨域请求消息;

GET http://www.b.com/test.php HTTP/1.1
Host:www.b.com
....
Origin:http://www.a.com


HTTP/1.1 200 OK
...
Access-Control-Allow-Origin: *

postMessage跨窗口传递消息,它允许每一个window向其他的窗口发送文本消息,从而实现跨域的消息传递;有安全问题需要注意:

  • 接收窗口验证Domain,甚至URL,防止来自非法页面的消息
  • 消息写入innerHTML或者script中,很容易导致DOM based XSS

接受窗口应该对接收到的信息进行安全检查;

WebStorage分为Session storage和Local storage,受到同源策略的约束,每个域的信息会保存在自己的域下。它也会带来更多的安全挑战。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,907评论 1 45
  • 面试题一:https://github.com/jimuyouyou/node-interview-questio...
    R_X阅读 1,689评论 0 5
  • 【转载】CSDN - 张林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牍阅读 3,528评论 1 14
  • 本文旨在加深对前端知识点的理解,资料来源于网络,由本人(博客:http://segmentfault.com/u/...
    AuthorJim阅读 449评论 0 0
  • 本文旨在加深对前端知识点的理解,资料来源于网络,由本人(博客:http://segmentfault.com/u/...
    还是那个西瓜阅读 1,343评论 0 1