随着移动互联网用户井喷式的增长,web前端开发中的HTML5在近几年备受瞩目,越来越多的人从事html5开发相关工作。今天小编也来凑个热闹,和大家一起来谈谈HTML5中<a>标签的ping属性。

HTML5  <a>标签的ping属性主要是为了让浏览器对外发送一个异步请求,达到广告的追踪、点击率统计或完成一次HTTP重定向的目的。但是也正是因为其对广告的追踪和监视,使得ping这个属性被浏览器一度抵制、进而加入默认关闭必须从如config这样的选项中打开才可以使用,下面我们来详细看看。

1、Ping的用法

Ping的用法相对比较简单,我们通过举例的方式,为大家介绍:

<a href="http://www.maiziedu.com" ping="http:// www.maiziedu.com /track">click me</a>

当你点击click me的时候,会异步发送一个POST请求到Ping后面指定的地址,Request Body的内容为PING。或许你会问,那<a ping="http://www.maiziedu.com/track">click me</a>这段代码行不行?答案是否定的,和HTML中的<a>标签一样,HTML5中href这个属性必须存在与<a>中,不然Ping也是不会运行的。

2、死亡之ping

根据Ping发送POST请求这个特性,我们可以使用循环使之不停的向一个地址追加POST请求,造成DOS攻击。

<script>

var link = document.createElement('a');

link.href="";

link.ping = 'http://www.maiziedu.com/';

document.head.appendChild(link); link.click();

</script>

运行上面的代码,就会不停的向maiziedu.com发送POST请求。

请运行在线DEMO: DOS.html  {chrome}

3、隐私追踪

Ping可以进行广告追踪,它可以统计用户都点击了哪些链接以及次数,并使用POST请求把这些信息发送到广告商的服务器上。那么POST的这些信息都包含了什么呢,简单来说HTTP Header的内容都会有,我们来看一个截获的完整信息

HOST: xisigr.com

CONTENT-LENGTH: 4

ORIGIN: http://mail.163.com

PING-FROM: http://****.com/js6/read/readhtml.jsp?mid=458:xtbBygBMgFO+dvBcvQAAsM&font=15&color=064977

USER-AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36

PING-TO: http://www.baidu.com/

CONTENT-TYPE: text/ping

ACCEPT: */*

REFERER: http://****.com/js6/read/readhtml.jsp?mid=458:xtbBygBMgFO+dvBcvQAAsM&font=15&color=064977

ACCEPT-ENCODING: gzip, deflate

ACCEPT-LANGUAGE: zh-CN,zh;q=0.8

COOKIE: sessionid=rnbymrrkbkipn7byvdc2hsem5o0vrr13

CACHE-CONTROL: max-age=0

CONNECTION: keep-alive

PING-FROM、USER-AGENT、REFERER这三个关键信息,直接泄漏了用户的隐私(但几个月前,百度已宣布不支持REFERER)。而这也为我们最爱的XSSSHELL又提供了一个小插件。对于图片探针如果没了新鲜感,那么请试试Ping探针吧,简单的一句<a href="" ping=>就搞定!

追踪这事是攻击者的最爱,我简单做了一个DEMO,打开aping.html这个页面,点击后,你会前往wathwg,并且我异步重定向了下w3.org,但同时你的HTTP Header/IP就被我获取到了。你可以通过这个链接查看截获到的信息,Ping.html。

总结

虽然ping的设计初衷是为了是统计广告的效果更方便快捷,和提升用户异步请求时的页面访问速度,但不可否认,现在HTML5  <a>标签中的ping已可被归结为探测用户隐私的范畴中了,但是这并不妨碍我们对HTML5的热爱和对ping这个属性的使用。

推荐学习:《html5从入门到精通

HTML5 <a>标签的ping属性用法的更多相关文章

  1. [转]HTML5 script 标签的 crossorigin 属性到底有什么用?

    HTML5 script 标签的 crossorigin 属性到底有什么用? 最近Bootstrap 4已经正式发布了,可能已经有爱尝鲜的小伙伴在 alpha 阶段就尝试过 BS4.不过今天要说的不是 ...

  2. HTML5 a标签的download属性

    介绍一个HTML5的新特性 a标签的download属性: 目前市场上面支持的浏览器有限: html: <!DOCTYPE html> <html> <body> ...

  3. HTML5 a标签的down属性进行图片下载

    a标签中的down属性时HTML5新增的属性,此属性指示浏览器下载URL而不是导航到URL,因此将提示用户将其保存为本地文件.目前该属性的兼容性如下: 具体代码实现: /* 主要原理:利用a标签的do ...

  4. Html5新标签解释及用法

    Html5新标签解释及用法 HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要 ...

  5. Html5新标签及用法

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2  HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务( ...

  6. HTML5新标签与特性---新表单+新属性----综合案例1

    HTML5新标签与特性 兼容性问题 (ie9 以上的版本) 文档类型设定 document HTML: sublime 输入 html:4s XHTML: sublime 输入 html:xt HTM ...

  7. 【HTML5 video】video标签的部分属性解析

    转自:http://www.cnblogs.com/kiter/archive/2013/02/25/2932157.html 现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Th ...

  8. 从零开始学习前端开发 — 10、HTML5新标签及表单控件属性和属性值

    一.html5新增标签 1.结构性标签 header 定义网页的头部 nav 定义网页的导航 footer 定义网页的底部 section 定义网页的某个区域 article 定义网页中的一篇文章 a ...

  9. HTML5 超链接:a标签的href 属性

    H5中a标签的 href 属性用于指定超链接目标的 URL,这里主要给大家介绍一下 href 属性的定义和用法以及应用实例. 定义和用法: <a> 标签的 href 属性用于指定超链接目标 ...

随机推荐

  1. ytxgnopyvw

    Rt.不是我的博客被盗了 而是我要测试一下某网站是自动抓取我的博客还是手动抓取. 如果是手动抓取,那么该网站的管理员一定会看见这篇博文, 希望管理员能够自己反省. ytxgn只是为了百度搜索方便罢了.

  2. IOS线程的一些总结

    主线程的作用 (在主线程中才能设置) 显示/刷新UI界面 处理UI事件(比如点击事件.滚动事件.拖拽事件): 主线程的使用注意 别将比较耗时的操作放到主线程中. 耗时操作会卡住主线程.影响体验. [N ...

  3. iOS10适配及Xcode8配置

    一.证书管理 用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书.建议大家勾选这个Automatically manage signing(Ps.但是在bea ...

  4. 浅谈Android 6.0之Runtime Permissions

    前言 Android6.0发布后,其一系列新特新足够让我们这些Android程序员兴奋一段时间了.首先我们先看看具体有哪些新特性: -锁频下语音搜索 -指纹识别 -更完整的应用权限管理 -Doze电量 ...

  5. SpringMVC配置入門

    我的開發環境 開發工具:    springsource-tool-suite-2.9.0 JDK版本:    1.6.0_29 tomcat版本:apache-tomcat-7.0.26 本文地址: ...

  6. [SmartFoxServer概述]使用文档

    如何使用文档和例子 这份文档提供了一份关于如何通过SmartFoxServer 2X(缩写SFS2X)文档掌握要点的快速教程.在使用例子和技术文档之前,我们建议先参考以下主题内容. 不管你是Smart ...

  7. Robot Framework-工具简介及入门使用

    Robot Framework-Mac版本安装 Robot Framework-Windows版本安装 Robot Framework-工具简介及入门使用 Robot Framework-Databa ...

  8. 小程序 - c字符串表示大整数

    #define max(a, b) ((a) > (b) ? (a) : (b)) static char* reverse(char *str) { char *l, *r, c; ; l & ...

  9. Mandelbrot和Julia

    概述 mandelbrot julia Mandelbrot 对全体复数z,满足xn+1 =  xn2 + z从x0 = 0起,|x|随n值增加不趋于无穷大,则z属于Mandelbrot集 代码 #i ...

  10. JBoss 系列四十八:JBoss 7/WildFly 使用TCP构建集群

    我知道JBoss 集群Default 的设定就是UDP(JGroups),但在实际环境中的网络环境时常不允许UDP,在这种情况下,我们就需要使用TCP. JBoss 7/WildFly 中负责集群的主 ...