【问题标题】:HTML elements that could trigger an HTTP request可能触发 HTTP 请求的 HTML 元素
【发布时间】:2016-10-17 15:12:00
【问题描述】:

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

  • 页面中的哪些元素可能触发http 请求?
  • 对于那些 元素,我想知道http方法是什么(POSTGET等)的相关请求。

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

【问题讨论】:

  • http 请求可以手动或自动触发。 <img/><iframe/><video/> 等元素将触发自动请求。 <a/> 和 '' 等标签可以手动触发。几乎任何元素都可以触发 AJAX 请求,具体取决于 JS 的实现方式
  • 标准列表将包括具有srchref 属性的任何内容;但是,<style> 元素与 url(...) 内部某处也可以。 <script>元素是完全开放的游戏。潜在的名单非常冗长。

标签: javascript html http http-method


【解决方案1】:

我会说任何具有 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 属性列表,其中有一个“类型”列,只需查找 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>

HTML 5 增加了一些(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">

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2019-10-21
    • 1970-01-01
    • 2013-12-26
    相关资源
    最近更新 更多