Cloudflare 中国网络上的性能和安全服务怎么样?
Cloudflare URL Scanner
Cloudflare URL Scanner(Cloudflare 网址扫描器)是 Cloudflare 提供的一项服务,它可以帮助网站管理员和用户检测和预防恶意软件、钓鱼网站和其他网络安全威胁。这项服务通常集成在 Cloudflare 的安全产品中,使用场景包括但不限于:
- 网站安全监测:自动扫描网站链接,检测是否含有恶意软件或被标记为钓鱼网站。
- 用户保护:当用户访问可能存在风险的网站时,Cloudflare URL Scanner 可以提供警告,防止用户受到网络攻击。
- 合规性检查:帮助企业确保其网站遵守相关的安全标准和法规要求。
- 品牌保护:防止恶意网站使用相似的域名来误导用户,损害品牌声誉。
- 数据泄露预防:通过扫描链接,预防数据泄露和未授权访问。
Cloudflare 的 URL Scanner 通过与多个安全提供商合作,使用实时更新的威胁情报数据库来识别和阻止恶意活动。这使得 Cloudflare 的用户能够享受到更高级别的网络安全保护。
示例
访问https://radar.cloudflare.com/scan
我们扫描某国内网站
如下总结报告
安全
技术栈检测
性能
使用API 扫描
使用 API 进行首次 URL 扫描,您必须获取 URL 扫描器特定的API 令牌。在权限组中使用帐户> URL 扫描器创建自定义令牌,然后选择编辑作为访问级别。
一旦您有了令牌,并且知道了您的account_id
,您就可以向 的 API 发出第一个请求https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/
。
提交 URL 进行扫描
为了提交要扫描的 URL,唯一需要的信息是POST
请求正文中要扫描的 URL:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan" \ --header "Authorization: Bearer <API_TOKEN>" \ --header "Content-Type: application/json" \ --data '{ "url": "https://www.example.com" }'
默认情况下,报告将具有Public
可见性级别,这意味着它将出现在最近的扫描列表和搜索结果中。它还将包含具有桌面分辨率的单个屏幕截图。
成功响应的状态代码为200
,类似于以下内容:
{ "errors": [], "messages": [{ "message": "Submission successful" }], "result": { "time": "2022-09-15T00:00:00Z", "url": "https://www.example.com", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "visibility": "Public" }, "success": true }
上述响应中的属性result.uuid
标识了扫描,在获取扫描报告时需要该属性。
提交自定义 URL 扫描
以下是带有一些自定义配置选项的示例请求正文:
{ "url": "https://example.com", "screenshotsResolutions": [ "desktop", "mobile", "tablet" ], "customHeaders": { "user-agent": "My-custom-user-agent", }, "visibility": "Unlisted" }
上面的可见性级别设置为Unlisted
,这意味着扫描报告不会包含在最近扫描列表或搜索结果中。实际上,只有知道扫描 ID 的用户才能访问它。
还将截取三张网页截图,每种目标设备类型一张。HTTPUser-Agent
标头将设置为“My-custom-user-agent”。请注意,您可以设置任何自定义 HTTP 标头,包括Authorization。
获取扫描报告
一旦 URL 扫描提交完成,即可通过调用 检查当前进度https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan/{scan_id}
。scan_id
将是result.uuid
上一个响应中返回的值。
扫描过程中,HTTP 状态代码为202
,扫描完成后为200
。建议客户端每 10-30 秒轮询一次。
回应将包括以下顶级房产result.scan
:
task
- 有关扫描提交的信息。page
- 与主要请求(例如响应 cookie)和网页本身(例如控制台消息)相关的信息。meta
- 元处理器输出包括检测到的技术、类别、等级等。ips
- 已联系的 IP。asns
- 已联系 AS 号码。geo
- 从联系的 IP 得出的 GeoIP 信息。domains
- 联系的主机名,包括dns
记录信息。links
- 在 DOM 中检测到传出链接。performance
- 界面给出的时间PerformanceNavigationTiming
。certificates
- HTTP 响应的 TLS 证书。verdicts
- 对恶意内容的判定。
一些更具体的属性的示例包括:
task.uuid
- 扫描的ID。task.effectiveUrl
- 所有 HTTP 重定向之后的主要请求的 URL。task.success
- 扫描是否成功。扫描可能因多种原因而失败,包括 DNS 错误。task.status
- 当前扫描状态,例如Queued
、InProgress
或Finished
。meta.processors.categories
- 联系的主要主机名的 Cloudflare 类别。meta.processors.securityRiskCategories
- Cloudflare 类别,代表所联系的主要主机名的安全风险。meta.processors.phishing
- 检测到了何种类型的网络钓鱼(如果有)。meta.processors.rank
-联系的主要主机名的Cloudflare Radar 排名。meta.processors.tech
- 在Wappalyzer的帮助下,检测到该网站正在使用哪些技术。page.country
- 联系的主要 IP 地址的 GeoIP 国家名称。page.cookies
- 由页面设置的 Cookie。page.console
- JavaScript 控制台消息page.js.variables
- 非标准 JavaScript 全局变量。page.securityViolations
- {{}}CSP{{}} 或SRI违规。verdicts.overall.malicious
-扫描时该网站是否被视为恶意网站。请检查每个子系统的其余属性以查找检测到的特定威胁。
获取 URL 扫描API 端点文档包含完整的响应模式。
为了获取扫描的屏幕截图或完整的网络日志,请访问相应端点的文档。
搜索扫描
Public
还可以搜索扫描。为了搜索对主机名的扫描google.com
,请使用查询参数page_hostname=google.com
:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan?page_hostname=http://google.com" \ --header "Authorization: Bearer <API_TOKEN>"
搜索结果还将包括您自己的 Unlisted
扫描结果。
相反,如果您想搜索至少向主机名发出一次请求的扫描cdnjs.cloudflare.com
(例如,使用托管在的 JavaScript 库的站点cdnjs.cloudflare.com
),请使用查询参数hostname=cdnjs.cloudflare.com
:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/scan?hostname=http://cdnjs.cloudflare.com" \ --header "Authorization: Bearer <API_TOKEN>"