HTML 个可以触发 HTTP 请求的元素

HTML elements that could trigger an HTTP request

给定一个网页,我想检测:

我假设这是一个棘手的问题..但是是否有任何指标可以暗示一个选项或另一个选项?

我会说任何具有 URI 类型属性的元素都能够触发 HTTP 请求,并且任何具有类型脚本属性的元素都可以通过 javascript.

触发它

我们可以从这个列表中过滤掉它: https://www.w3.org/TR/REC-html40/index/attributes.html

并基于这个问题的公认答案: COMPLETE list of HTML tag attributes which have a URL value?

这为您提供了属性类型为 url 的列表(参见下面我引用的答案)。

至于脚本类型属性,包括 onclick、onkeypress 等,这意味着,我相信您将手头有一堆无法触发 http 请求的元素。

引用答案:

查看 W3C 的 HTML 属性列表,其中有一个 "type" 列,只需查找 URI 类型即可。

当然,该列表的 HTML 5 版本也很有用

所以对于 HTML4,我们有:

  • <a href=url>
  • <applet codebase=url>
  • <area href=url>
  • <base href=url>
  • <blockquote cite=url>
  • <body background=url>
  • <del cite=url>
  • <form action=url>
  • <frame longdesc=url><frame src=url>
  • <head profile=url>
  • <iframe longdesc=url><iframe src=url>
  • <img longdesc=url><img src=url><img usemap=url>
  • <input src=url><input usemap=url>
  • <ins cite=url>
  • <link href=url>
  • <object classid=url><object codebase=url><object data=url><object usemap=url>
  • <q cite=url>
  • <script src=url>

HTML5 加了几个(而且HTML5 上面的一些好像也用不到):

  • <audio src=url>
  • <button formaction=url>
  • <command icon=url>
  • <embed src=url>
  • <html manifest=url>
  • <input formaction=url>
  • <source src=url>
  • <video poster=url> and <video src=url>

这些不一定是简单的 URL:

  • <object archive=url> or <object archive="url1 url2 url3">
  • <applet archive=url> or <applet archive=url1,url2,url3>
  • <meta http-equiv="refresh" content="seconds; url">

此外,样式属性可以包含带有一个或多个 url 的 css 声明。例如:<div style="background: url(image.png)">