跳转到内容
搜索文档

URL 扫描器

最后更新 查看 MarkdownAgent 设置

要更好地了解全球各地的互联网使用情况,请使用 Cloudflare 的 URL 扫描器。利用 Cloudflare 的 URL 扫描器,您能够调查域名、IP、URL 或 ASN 的详细信息。Cloudflare 的 URL 扫描器可在 Cloudflare 仪表板的安全中心、Cloudflare Radar 和 Cloudflare API 中使用。

使用 API

要使用 API 进行首次 URL 扫描,您必须获取一个特定于 URL 扫描器的 API 令牌。在 **Permissions(权限)**组中使用 Account(账户)> URL Scanner(URL 扫描器)创建自定义令牌,并选择 Edit(编辑)作为访问级别。

拥有令牌并知道 account_id 后,您即可准备向位于 https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/ 的 API 发出首次请求。

提交要扫描的 URL

要提交要扫描的 URL,POST 请求正文中唯一必需的信息是要扫描的 URL:

curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/scan" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "url": "https://www.example.com"
}'

默认情况下,报告的可见性级别为 Public,这意味着它将出现在最近扫描列表和搜索结果中。它还将包括一张桌面分辨率的单个屏幕截图。

成功的响应其状态代码将为 200,并且类似于以下内容:

{
  "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  "api": "https://api.cloudflare.com/client/v4/accounts/<accountId>/urlscanner/v2/result/095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  "visibility": "public",
  "url": "https://www.example.com",
  "message": "Submission successful"
}

您可以通过 API 同时提交多达 100 个 URL。

上述响应中的 uuid 属性用于标识扫描,在获取扫描报告时是必需的。

提交自定义 URL 扫描

以下是包含某些自定义配置选项的示例请求正文:

{
	"url": "https://example.com",
	"screenshotsResolutions": [
		"desktop", "mobile", "tablet"
	],
  "customagent": "XXX-my-user-agent",
  "referer": "example",
	"customHeaders": {
		"Authorization": "xxx-token"
	},
	"visibility": "Unlisted"
}

在上面,可见性级别被设置为 Unlisted,这意味着扫描报告不会被包含在最近扫描列表或搜索结果中。实际上,只有知道扫描 ID 的用户才能访问它。

系统还会抓取该网页的三张屏幕截图,每种目标设备类型一张。User-Agent 将设置为“XXX-my-user-agent”。请注意,您可以设置任何自定义 HTTP 标头,包括 Authorization

获取扫描报告

完成 URL 扫描提交后,您可以通过调用 https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/result/{scan_id} 来检查当前进度。scan_id 将是前一个响应中返回的 uuid 值。

在扫描进行中时,HTTP 状态代码将是 404;一旦完成,它将是 200。Cloudflare 建议您每 10-30 秒轮询一次。

响应中除了包含其他属性外,还将包含以下主要属性:

  • task - 关于扫描提交的信息。
  • page - 有关主响应的信息,例如 IP 地址、ASN、服务器和页面重定向历史记录。
  • data.requests - 页面加载中涉及的请求链。
  • data.cookies - 页面设置的 Cookie。
  • data.globals - 非标准 JavaScript 全局变量。
  • data.console - 控制台日志。
  • data.performance - 由 PerformanceNavigationTiming 接口给出的时间。
  • meta - 元处理器的输出,包括检测到的技术、域名和 URL 类别、排名、地理位置信息等。
  • lists.ips - 联系的 IP。
  • lists.asns - 联系的 AS 编号。
  • lists.domains - 联系的主机名,包括 dns 记录信息。
  • lists.hashes - 响应主体、主页 HTML 结构、屏幕截图和网站图标的哈希值。
  • lists.certificates - HTTP 响应的 TLS 证书。
  • verdicts - 有关恶意内容的裁决。

一些更具体的属性的示例如下:

  • task.uuid - 扫描的 ID。
  • task.url - 扫描中提交的 URL。如果有 HTTP 重定向,这可能与最终 URL (page.url) 不同。
  • task.success - 扫描是否成功。扫描失败的原因可能有多种,包括 DNS 错误。
  • task.status - 当前扫描状态,例如 QueuedInProgressFinished
  • meta.processors.domainCategories - 联系的主机名的 Cloudflare 类别。
  • meta.processors.phishing - 侦测到的哪种网络钓鱼(如果有)。
  • meta.processors.radarRank - 联系的主机名的 Cloudflare Radar 排名
  • meta.processors.wappa - 在 Wappalyzer 的帮助下,检测到的网站正在使用的技术类型。
  • page.url - 在所有 HTTP 重定向后,主请求的 URL。
  • page.country - 与所联系主 IP 地址关联的地理位置数据中的国家/地区名称。
  • page.history - 主页历史,包括任何 HTTP 重定向。
  • page.screenshot - 主屏幕截图的各种哈希值。可用于搜索具有类似屏幕截图的网站。
  • page.domStructHash - HTML 结构哈希。使用它来搜索具有类似结构的网站。
  • page.favicon.hash - 网站图标的 MD5 哈希。
  • verdicts.overall.malicious - 网站在_扫描时_是否被认为是恶意的。请检查针对侦测到的特定威胁的每个子系统的其余属性。

获取 URL 扫描 API 端点文档包含了完整的响应架构。

要获取扫描的屏幕截图或完整的网络日志,请参阅相应的端点文档。

搜索扫描

使用 ElasticSearch Query 语法的一个子集来过滤扫描。搜索结果将包含 Public 扫描和您自己的 Unlisted 扫描。

要搜索对主机名 google.com 的扫描,请使用查询参数 q=page.domain:"google.com"

curl 'https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/search?q=page.domain:google.com' \
--header "Authorization: Bearer <API_TOKEN>"

相反,如果您想要搜索向主机名 cdnjs.cloudflare.com 至少发起一次请求的扫描,例如使用托管在 cdnjs.cloudflare.com 上的 JavaScript 库的网站,请使用查询参数 hostname=cdnjs.cloudflare.com

curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/search?q=domain:cdnjs.cloudflare.com" \
--header "Authorization: Bearer <API_TOKEN>"

其他查询示例:

  • task.url:"https://google.com" OR task.url:"https://www.google.com":搜索提交的 URL 是 google.com 或是 www.google.com 的扫描。URL 必须用双引号引起来。
  • page.url:"https://google.com" AND NOT task.url:"https://google.com":搜索主请求 URL 是 google.com 且其提交的 URL 不是 google.com 的扫描(即重定向到 google.com 的站点)。
  • page.domain:microsoft AND verdicts.malicious:true AND NOT page.domain:microsoft.com:主机名以 microsoft 开头的恶意扫描。将匹配像 microsoft.phish.com 这样的域名。
  • apikey:me AND date:[2024-01 TO 2024-10]:您从 2024 年 1 月到 2024 年 10 月的扫描。
  • page.domain:(blogspot OR www.blogspot):搜索其主域名以 blogspotwww.blogspot 开头的扫描。
  • date:>now-7d AND path:okta-sign-in.min.js:过去七天中任何请求路径以 okta-sign-in.min.js 结尾的扫描。
  • page.asn:AS24940 AND hash:-557369673:检索具有给定哈希的资源并且托管在 AS24940 中的网站。
  • hash:8f662c2ce9472ba8d03bfeb8cdae112dbc0426f99da01c5d70c7eb4afd5893ca:使用 page.domStructHash 处的哈希值,搜索具有相同 HTML 结构哈希的其他扫描。

请转到 API 文档中的搜索 URL 扫描,获取可用选项的完整列表。

安全中心

此外,您还可以在安全中心进行搜索:

  1. 在 Cloudflare 仪表板中,转到 **Investigate(调查)**页面。

    Go to Investigate ↗
  2. 输入您的查询,然后选择 Search(搜索)

您可以按位置扫描 URL。通过位置扫描 URL 允许您分析网站在不同位置可能呈现出哪些不同的内容。这有助于揭露并检查特定于区域的恶意活动。

要根据您的地理位置扫描 URL:

  1. 输入您的 URL。
  2. 转到 Location(位置)> 选择从哪个国家/地区扫描 URL。
  3. 选择 Scan now(立即扫描)

您还可以使用 API 从特定位置扫描 URL。

在安全中心,您可以通过以下方式检索预过滤信息:

  • Similar screenshot(类似的屏幕截图)
  • Identical favicon(相同的网站图标)
  • Similar favicon(类似的网站图标)
  • Similar HTML structure(类似的 HTML 结构)
  • Identical ASN(相同的 ASN)
  • Identical IP(相同的 IP)
  • Identical domain(相同的域名)
  • Identical final URL(相同的最终 URL(所有重定向后))

这篇文档对您有帮助吗?