Ответ 1
Я бы сказал, что любой элемент, имеющий атрибут URI типа, сможет инициировать HTTP-запрос, а также любой элемент, имеющий атрибут, если тип script может запускать его через javascript.
Мы можем отфильтровать это из этого списка: https://www.w3.org/TR/REC-html40/index/attributes.html
и на основе принятого ответа на этот вопрос: ПОЛНЫЙ список атрибутов тега HTML, имеющих значение URL?
Это дает вам список с атрибутами типа url (см. мой цитированный ответ ниже).
Что касается атрибутов типа script, которые включают onclick, onkeypress и т.д., что означает, что, по-моему, вы останетесь с рукой, полной элементов, которые не смогут запускать HTTP-запрос, если это.
Цитирование ответа:
Просмотрите список атрибутов HTML W3C, там есть столбец "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>
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">
Кроме того, атрибут стиля может содержать объявления css с одним или несколькими URL-адресами. Например: <div style="background: url(image.png)">