📋 一分钟速览:证据固定四步法 + 申诉证据清单总表

本文核心是一套可落地的「证据固定四步法」:① 逐平台跑四维检测拿到原始返回(不是截图)→ ② 给每份证据打UTC 时间戳 → ③ 计算整体 SHA-256 哈希做防篡改存证 → ④ 打包成一份可提交的状态快照报告。核心结论:平台审核最认「带时间戳的 API 原始返回 + 第三方工具报告」,最不认「你自己口头描述」。证据完整的申诉,一次通过率比裸申诉高约 3-5 倍。

⏱ 覆盖维度:谷歌 Safe Browsing / QQ微信 urlsec / 防反诈DNS / APK爆毒 | 工具:curl + dig + Python + 333Check | 零成本

为什么域名被误红后急着申诉反而最容易失败?

很多运营者的申诉流程是:发现域名打不开 → 心里一急 → 打开平台的申诉表单 → 写一句「我的网站是正规的,请解除拦截」→ 提交 → 等驳回。这个流程从第一步就错了。平台审核员每天面对成千上万条申诉,他们判定的依据不是你的态度,而是证据链是否完整

一条合格的申诉证据链,至少要能回答三个问题:

  • 「域名此刻的真实状态是什么?」——是谷歌 Safe Browsing 标红了,还是 QQ微信拦了,还是运营商反诈 DNS 劫持了?每个平台的证据形式完全不同。
  • 「这个状态是在什么时间点、由哪个工具测出来的?」——没有时间戳的截图等于没有证据,审核员无法判断是不是你事后补的。
  • 「证据是否被篡改过?」——哈希存证能让审核方确认:这份报告从生成到提交之间没被动过手脚。

下面这张图对比了「裸申诉」和「带证据申诉」两条路径的差异——区别不在运气,而在你是否先做了证据固定这一步。

裸申诉 vs 带证据申诉:同一条申诉的两条路径 ❌ 裸申诉(凭感觉) 发现域名打不开 直接填申诉表单 写一句「我是正规站」 驳回:证据不足 平均申诉 2-3 轮,耗时 1-2 周 ✅ 带证据申诉(先固定) 跑四维检测 + 时间戳 + 哈希 生成状态快照报告 提交报告 + 原始返回 一次通过,快速解封 证据完整时,一轮通过率显著提升 差距不在运气,而在你有没有先做「证据固定」这一步

▲ 裸申诉 vs 带证据申诉对比:先固定四维检测证据,是申诉成功的关键前提

所以这篇文章的重点不是「怎么填申诉表」,而是教你在填表之前,怎么把证据拿到手并固定下来——这才是检测工具真正能帮你做的事。

谷歌域名防红、QQ微信防红、防反诈屏蔽、APK爆毒四维证据该怎么逐平台固定?

四个平台的证据形式和获取方式完全不同,下面逐一给出具体命令。记住一个总原则:优先保留「API 原始返回」和「命令行输出」,而不是截图——原始返回自带结构化和时间信息,截图容易被人怀疑是 PS 的。

1

谷歌域名防红:Safe Browsing API 返回原文 + 透明报告

用谷歌官方 Safe Browsing API 查一次,把返回的完整 JSON 原样保存。这份 JSON 里「有没有 matches」就是最硬核的谷歌维度证据。

# 谷歌 Safe Browsing Lookup API —— 保存原始返回 curl -s -X POST "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"threatInfo":{"threatTypes":["MALWARE","SOCIAL_ENGINEERING","UNWANTED_SOFTWARE"],"platformTypes":["ANY_PLATFORM"],"threatEntryTypes":["URL"],"threatEntries":[{"url":"http://your-domain.com"}]}}' \ | tee gsb_evidence_$(date +%Y%m%d_%H%M%S).json
💡 再用谷歌安全浏览透明报告页(transparencyreport.google.com)核对一次,截图连同 URL 一起保存。API JSON + 官方页面截图 = 谷歌维度的双证据。
2

QQ微信防红:urlsec 返回 + 微信 UA 模拟拦截页

QQ/微信的拦截走 urlsec 接口,返回里带 eviltype/evilclass 字段就代表被标记。再用微信 UA 抓一次,看是否真的弹拦截页。

# QQ urlsec 检测 —— 保存原始返回 curl -s "https://cgi.urlsec.qq.com/index.php?m=url&a=valid&url=http://your-domain.com" \ | tee qq_evidence_$(date +%Y%m%d_%H%M%S).txt # 微信内置浏览器 UA 模拟 —— 看拦截页 curl -s -A "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.49" \ -I "http://your-domain.com"
💡 若 urlsec 返回空但微信里实际被拦,说明拦截发生在「客户端」层(本地特征库),要保留微信真机截图作为补充证据。
3

防反诈屏蔽:四运营商 DNS 对比结果

反诈拦截的表现是 DNS 劫持(返回 127.0.0.1 或 0.0.0.0)。用四家运营商 DNS 各查一次,把解析结果逐条保存——「哪家劫持、哪家正常」本身就是有力的区域性证据。

# 四运营商 DNS 对比 —— 逐条保存结果 for d in 114.114.114.114 211.137.130.19 211.137.140.201 211.98.4.1; do echo "== DNS $d ==" >> dns_evidence_$(date +%Y%m%d_%H%M%S).txt dig +short @$d your-domain.com >> dns_evidence_$(date +%Y%m%d_%H%M%S).txt done
💡 如果四家都返回 127.0.0.1,是全网反诈屏蔽;如果只有一两家异常,是区域性劫持——两种情况的申诉对象和材料完全不同。
4

APK爆毒:Virustotal 报告 + 文件哈希

如果域名关联了 APK 下载,用 Virustotal 查域名报告,并把 APK 文件的 SHA-256 一并固定——「APK 本身是否爆毒」决定了你的域名是「主犯」还是「连坐」。

# Virustotal 域名报告 —— 保存原始返回 curl -s -H "x-apikey: YOUR_VT_KEY" \ "https://www.virustotal.com/api/v3/domains/your-domain.com" \ | tee vt_evidence_$(date +%Y%m%d_%H%M%S).json # APK 文件哈希固定 sha256sum your-app.apk
💡 若 APK 哈希在 Virustotal 上检出为 0,而域名仍被连坐标红,这份「0 检出」的哈希证据就是申诉里最有力的反证。

四维证据固定完成后,你会得到四份带时间戳的原始文件。下面这张图是完整的证据固定流程总览:

四维检测证据固定流水线 谷歌 SB API JSON 原始返回 QQ/微信 urlsec eviltype 返回 反诈 DNS 四运营商对比 APK / VT 报告 + 哈希 时间戳 + SHA-256 哈希存证 防篡改 · 可审计 四份原始证据 → 统一打时间戳 + 算哈希 → 打包成可提交的状态快照报告

▲ 四维检测证据固定流水线:四个平台的原始返回汇聚后统一打时间戳、算哈希存证

把四维证据整理成下面这张对照表,能帮你核对是否每个维度都固定到位了:

检测维度 检测工具/命令 证据形式 判定为「被红」的特征 申诉用途
谷歌域名防红 SB API / 透明报告 JSON + 官方截图 返回含 matches 证明谷歌维度真实状态
QQ微信防红 urlsec / UA 模拟 文本返回 + 拦截页 eviltype/evilclass 非空 证明是否被客户端拦截
防反诈屏蔽 四运营商 dig DNS 解析记录 返回 127.0.0.1 / 0.0.0.0 证明是否区域性劫持
APK爆毒 Virustotal / sha256sum 报告 JSON + 哈希 检出引擎数 > 0 证明 APK 是否清白/连坐

状态快照报告怎么一键生成并加上时间戳与哈希存证?

手动跑完四条命令后,建议再用一个 Python 脚本把四维证据自动汇总、打时间戳、算哈希、生成报告——这样整个证据链才是闭环的。脚本原理很简单:采集四维结果 → 序列化成 JSON → 计算 SHA-256 → 落盘存证。

1

写一个 evidence_snapshot.py 脚本

下面这个脚本把前面四步的检测命令串起来,自动生成带时间戳和哈希的快照报告。把 YOUR_KEY 换成你自己的 API key 即可运行。

# evidence_snapshot.py —— 四维证据固定 + 哈希存证 + 快照报告 import json, hashlib, subprocess, datetime, urllib.request DOMAIN = "your-domain.com" now = datetime.datetime.now(datetime.timezone.utc).isoformat() evidence = {"domain": DOMAIN, "captured_at_utc": now, "dimensions": {}} def gsb(): url = "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=YOUR_KEY" body = {"threatInfo": {"threatTypes":["MALWARE","SOCIAL_ENGINEERING"], "platformTypes":["ANY_PLATFORM"], "threatEntryTypes":["URL"], "threatEntries":[{"url": "http://"+DOMAIN}]}} req = urllib.request.Request(url, json.dumps(body).encode(), {"Content-Type":"application/json"}) return urllib.request.urlopen(req).read().decode() def qq(): u = "https://cgi.urlsec.qq.com/index.php?m=url&a=valid&url=http://" + DOMAIN return urllib.request.urlopen(u).read().decode("utf-8", "ignore") def dns(): dnss = ["114.114.114.114", "211.137.130.19", "211.137.140.201", "211.98.4.1"] out = {} for d in dnss: r = subprocess.run(["dig", "+short", "@"+d, DOMAIN], capture_output=True).stdout.decode().strip() out[d] = r return out def vt(): req = urllib.request.Request("https://www.virustotal.com/api/v3/domains/"+DOMAIN, headers={"x-apikey":"YOUR_VT_KEY"}) return urllib.request.urlopen(req).read().decode() evidence["dimensions"]["gsb"] = gsb() evidence["dimensions"]["qq"] = qq() evidence["dimensions"]["dns"] = dns() evidence["dimensions"]["vt"] = vt() payload = json.dumps(evidence, ensure_ascii=False, sort_keys=True).encode() evidence["sha256"] = hashlib.sha256(payload).hexdigest() with open(f"evidence_{DOMAIN}_{now[:10]}.json", "w") as f: f.write(json.dumps(evidence, ensure_ascii=False, indent=2)) print("证据已固定,哈希:", evidence["sha256"])
💡 哈希是整个证据链的「封印」——之后任何一次改动都会让哈希对不上,审核方可以用它验证报告未被篡改。
2

运行脚本并核对哈希

运行后你会得到一个 evidence_*.json 文件和一个 SHA-256 哈希值。把哈希值记录在申诉表单的备注里,或者打印在报告首页,作为防篡改标识。

python3 evidence_snapshot.py # 输出:证据已固定,哈希:3f8a9c...(示例) sha256sum evidence_your-domain.com_2026-08-14.json # 二次校验
3

把快照报告转成可提交的 HTML/PDF

纯 JSON 对审核员不友好,建议再用 333Check 的在线检测结果页 + 这份 JSON 一起,拼成一份「人也能读懂」的申诉材料:标题写清域名、时间戳、四维结论,附上哈希值和每个维度的关键字段摘录。

⚠️ 最容易踩的一个坑:只用「截图」当证据

截图最大的问题是没有时间戳、无法验证、容易被怀疑 PS。审核员看到一张来路不明的截图,和看到一份带哈希的 API 原始返回,采信程度天差地别。正确顺序是:先存原始返回(硬证据),再用截图作为辅助说明(软证据),两者配合而不是二选一。

哪些申诉证据平台审核最认可?材料又该保留多久?

不是所有证据分量都一样。根据我们对多个平台申诉流程的实测和运营反馈,证据的「采信优先级」可以排成下面这张表——从上到下,采信度递减:

证据类型 示例 审核采信度 建议保留时长
API 原始返回(带时间戳) SB API JSON、urlsec 文本、VT JSON 最高 永久(存档)
第三方工具报告 Virustotal、333Check 检测报告 ≥ 180 天
命令行输出(dig/curl) DNS 解析记录、HTTP 响应头 中高 ≥ 90 天
真机截图/录屏 微信拦截页、谷歌红屏 ≥ 90 天
口头描述 / 承诺 「我是正规站」 最低

关于「保留多久」,有一条经验法则:只要域名还在运营,证据就一直存着。因为同一域名可能在未来再次被误红,而上一轮的完整证据链(尤其是「当时状态 + 解封记录」)能证明这个域名有「清白的历史」,是二次申诉时的有力佐证。

❌ 常见误区:「申诉被驳回了就再申诉一次,总有一次能过」

反复无证据申诉不仅过不了,还可能被平台标记为恶意申诉,反而降低后续申诉的优先级。正确做法是第一次就带齐证据:四维原始返回 + 时间戳 + 哈希 + 第三方报告,一次把话说清楚。被驳回后再申诉时,要补充新的证据(比如新的时间点快照、新的第三方报告),而不是重复同一句话。

✅ 推荐落地顺序(域名被误红当天就做)

第 1 小时:跑四维检测命令,保存原始返回 → 第 2 小时:运行 evidence_snapshot.py 打时间戳 + 算哈希 → 第 3 小时:整理成状态快照报告 + 附第三方工具报告 → 当天:提交申诉,备注里写明哈希值。
整套零成本,30 分钟即可完成,比裸申诉的成功率高出数倍。

客户怎么说?

"我们的棋牌APP之前每天被封,接入Ai防红后连续运营90天零封禁。"

——某东南亚游戏运营商,月付1500U套餐

"谷歌防红提交后24小时解除Safe Browsing警告,比自己申诉快10倍。"

——某海外贸易平台,使用谷歌防红500U/月

"域名被误红后我自己按这套方法固定了四维证据——SB API 返回、urlsec 原文、四运营商 DNS、APK 哈希,打上时间戳算好哈希再提交申诉。平台一次就通过了,比我前两次裸申诉快了整整一周。"

——某独立站长,用证据固定四步法成功申诉解封

检测到域名被红、又不想自己折腾证据固定?怎么免费拿一份现成的申诉快照?

本文教了你从四维检测到哈希存证的完整自建流程——你完全可以零成本自己跑起来。
如果你希望跳过搭建,直接拿到一份带时间戳和哈希的四维状态快照报告,联系 @AICDN 免费测试。
我们帮你跑第一次全维度检测并出具可提交申诉的证据快照,3 分钟出结果。

🔍 提交域名 · 免费获取申诉证据快照