第一步:用在线扫描器做快速初筛,五分钟出结果
在线扫描器不需要安装、不需要服务器权限,输入网址就能跑。适合用来快速判断网站有没有被挂明显的黑链或恶意代码。| 工具 | 检测能力 | 免费额度 | 能查到什么层级 | 适用场景 |
|---|---|---|---|---|
| Sucuri SiteCheck | 恶意软件扫描、黑名单状态、SEO垃圾检测、iframe注入、已感染的外部资源 | 完全免费 | L1、L2、部分L3 | 所有网站首选初筛工具,秒出结果 |
| VirusTotal | 70+安全引擎联合扫描、恶意URL检测、文件分析 | 完全免费 | L1、L2 | URL级别快速判断是否被标记为恶意 |
| Quttera | 恶意软件扫描、可疑文件检测、黑名单检查、外部链接分析 | 免费扫描 | L1、L2、L3 | Sucuri的补充,JS注入检测更强 |
| Google Search Console | 安全问题告警、被黑页面列表、手动操作通知 | 完全免费 | L1-L5 | 必查!Google视角看你的网站,cloaking能发现 |
| 360网站安全检测 | 网页篡改监测、黑链检测、漏洞扫描、钓鱼检测 | 基础版免费 | L1、L2、部分L3 | 国内网站优先,百度生态监测 |
在线扫描器的局限——为什么跑完显示"安全"不代表真没黑链在线扫描器只能扫描单个URL的HTML输出,它们看到的是服务器返回给普通用户的页面。如果黑链是通过cloaking技术只对搜索引擎爬虫展示的,或者通过JS在用户浏览器里动态生成的,在线扫描器大概率扫不出来。把在线扫描结果当成"初筛通过"而非"安全认证"。
第二步:Google Search Console——Google视角下的黑链照妖镜
Google Search Console的"安全问题"板块能看到普通工具看不到的东西。因为Google的爬虫访问你的网站时会带上Googlebot的User-Agent,恰好是cloaking黑链的目标对象。GSC里出现红色告警,说明Google已经发现了问题并可能已经对你的网站施加了惩罚。安全问题报告
查看"被黑客入侵的内容""恶意软件""社交工程"等告警。这里列出的每个URL都是Google确认有问题的页面,必须逐一清理。
手动操作(Manual Actions)
如果被判定为"用户生成的垃圾内容""隐藏文本/链接"等,会在这里显示。这是Google的人工审核惩罚,比算法惩罚更严重。
抓取统计信息
查看Googlebot抓取时遇到了多少错误。如果某个时段抓取错误突然暴增,可能是黑链代码导致服务器异常或重定向。
最容易被忽略的GSC功能:URL检查工具里的"被Google抓取的网页"
在GSC顶部的URL检查栏输入你怀疑的页面URL,点击"测试实际网址"→查看"被Google抓取的网页"→对比"用户声明的规范网页"和"Google选择的规范网页"。如果两者不一致,且Google选择的规范网页是一个奇怪的域名,说明你的页面被注入了canonical劫持代码。另一种检查方式:对比"已编入索引"的截图和你实际看到的页面——如果截图里有你没见过的链接或文字,那就是cloaking黑链。
在GSC顶部的URL检查栏输入你怀疑的页面URL,点击"测试实际网址"→查看"被Google抓取的网页"→对比"用户声明的规范网页"和"Google选择的规范网页"。如果两者不一致,且Google选择的规范网页是一个奇怪的域名,说明你的页面被注入了canonical劫持代码。另一种检查方式:对比"已编入索引"的截图和你实际看到的页面——如果截图里有你没见过的链接或文字,那就是cloaking黑链。
第三步:源码级扫描——找到黑链的源头,不是只删链接
黑链只是症状,根源是网站被入侵了。只删掉footer.php里那87条链接,不找到黑客是怎么进来的,下个星期又会被挂上去。源码级扫描工具用于检测Webshell后门、恶意PHP文件、被篡改的系统文件。| 工具 | 平台 | 检测范围 | 特点 | 价格 |
|---|---|---|---|---|
| D盾 | Windows | Webshell后门、一句话木马、PHP/JSP/ASP/ASPX恶意代码 | 国内站长圈公认最好用的免费查杀工具,特征库更新频繁,误报率低 | 免费 |
| 河马查杀 | Linux/Windows | Webshell、恶意文件、病毒木马、可疑脚本 | 支持Linux服务器端直接运行,扫完生成HTML报告 | 免费 |
| Wordfence(WordPress) | WordPress插件 | 核心文件完整性、主题/插件恶意代码、已知漏洞、黑名单IP | WordPress站必备,自动对比官方文件哈希值检测篡改 | 免费/付费$119/年 |
| ClamAV | Linux | 病毒、木马、恶意软件、Webshell | 开源杀毒引擎,可集成到定时任务做持续监控 | 免费开源 |
| 安全狗 | Windows/Linux | Webshell、网页篡改、黑链、文件监控 | 服务器端安装,支持实时文件监控和黑链告警 | 基础版免费 |
查源码时的三个关键目录,90%的黑链藏在这1. 主题/模板目录:WordPress的 wp-content/themes/、DedeCMS的 templates/ 等。footer.php、header.php、functions.php 是被篡改的重灾区,黑客喜欢在这些全局加载的文件里塞黑链代码。
2. 上传目录:wp-content/uploads/、/images/、/upload/。黑客经常把Webshell伪装成图片上传(如 shell.php.jpg),然后通过这个文件执行命令。
3. 根目录配置文件:.htaccess、web.config、wp-config.php。.htaccess被劫持可以做到:用户访问正常→搜索引擎访问跳转到黑链站点。检查.htaccess里有没有 RewriteCond %{HTTP_USER_AGENT} 开头的针对爬虫的规则。
2. 上传目录:wp-content/uploads/、/images/、/upload/。黑客经常把Webshell伪装成图片上传(如 shell.php.jpg),然后通过这个文件执行命令。
3. 根目录配置文件:.htaccess、web.config、wp-config.php。.htaccess被劫持可以做到:用户访问正常→搜索引擎访问跳转到黑链站点。检查.htaccess里有没有 RewriteCond %{HTTP_USER_AGENT} 开头的针对爬虫的规则。
第四步:本地爬虫工具——模拟搜索引擎视角抓整站外链
前面三步都在查"有没有被黑",这一步要查"整站到底有多少外链,其中哪些是我不认识的"。用爬虫工具把整站所有页面跑一遍,提取全部外链,然后逐个排查陌生域名。| 工具 | 类型 | 核心功能 | 黑链检测适用性 |
|---|---|---|---|
| Screaming Frog | 桌面软件 | 整站爬取、提取所有外链、自定义User-Agent、搜索源码关键词 | 模拟Googlebot爬取,能抓到cloaking黑链。免费版500URL |
| 渊照暗链扫描器 | 桌面软件 | 专门检测暗链、隐藏元素、恶意代码,支持整站目录扫描 | 专业暗链检测,支持HTML文件/目录批量扫描 |
| aljcscan(开源) | Python脚本 | 爬虫批量检测暗链,关键词匹配+URL访问验证 | GitHub开源,适合技术用户批量扫描多个网站 |
| Xenu Link Sleuth | 桌面软件 | 整站链接检查,列出所有内部和外部链接 | 老牌免费工具,能快速列出整站外链清单,但不会分析恶意性 |
| Linux命令行 | 命令行 | grep+find批量搜索文件内容 | 零成本最强方案,灵活度最高,下面有具体命令 |
用命令行批量扫描整站黑链特征(零成本、最高灵活度)# 1. 搜索所有包含 display:none 且附近有 <a 标签的文件grep -rn "display\s*:\s*none" /var/www/html/ --include="*.php" --include="*.html" | grep -i "# 2. 搜索所有包含陌生域名的外链(替换成你认识的域名)grep -rn "href=" /var/www/html/ --include="*.php" --include="*.html" | grep -v "yourdomain.com" | grep -v "cdn.xxx.com"# 3. 搜索可疑的 eval / base64_decode / gzinflate 代码(Webshell特征)grep -rn "eval\s*(" /var/www/html/ --include="*.php"grep -rn "base64_decode" /var/www/html/ --include="*.php"# 4. 搜索被注入的隐藏div(position负值、text-indent超大负值等)grep -rn "position\s*:\s*absolute.*-999" /var/www/html/ --include="*.php"grep -rn "text-indent\s*:\s*-999" /var/www/html/ --include="*.php"# 5. 查找最近7天内被修改过的PHP文件(找到黑客最近的活动痕迹)find /var/www/html/ -name "*.php" -mtime -7 -ls
黑链的七种隐藏姿势,检测工具为什么可能漏掉
了解黑链的隐藏方式,才能理解为什么有些黑链用在线工具扫不出来。检测到黑链之后,清理和加固不能只做一半
找到黑链只是第一步。如果不清除入侵入口、不修复漏洞、不加固防御,清理完三天后又会挂上新的。应急清理六步——按顺序做,不要跳Step 1 立即备份:在动任何文件之前,先把整站源码+数据库完整备份。不是为了恢复,是为了事后分析入侵路径。Step 2 关闭写入权限:把所有PHP文件权限改为444(只读),上传目录改为755但禁止执行PHP。防止在清理过程中黑客又写入新文件。Step 3 查杀后门:用D盾或河马查杀整站源码,找到并删除Webshell和恶意文件。不要手动删黑链——先删后门,再清黑链。Step 4 清理黑链:用命令行批量搜索并清除所有被注入的黑链代码。同时导出数据库搜索并清除黑链数据。改完检查一遍有没有遗漏。Step 5 修复漏洞:更新CMS到最新版、更新所有插件和主题、删除不用的插件、检查是否有弱口令(后台/FTP/数据库)、关闭不必要的端口。Step 6 提交审核:清理完成后,去Google Search Console→安全问题→提交审核。百度站长平台→网站安全→申请重新审核。审核通过前排名不会恢复。黑链清除后,排名多久能恢复?· Google:提交审核后通常1-7天审核通过,排名恢复需要2-6周。如果被下了Manual Action,审核通过后排名会逐步回升,但一般不会回到原来的位置。· 百度:审核时间不固定,通常1-4周。百度对黑链的惩罚比Google更持久,部分站点清理后半年排名都没回到原位。· 最关键的因素不是你清理得多干净,而是黑链挂了多久。挂了2周发现的,恢复通常1个月内;挂了半年才发现的,恢复可能3-6个月甚至更久。
长期防护——让黑链检测变成自动化
手动扫一次只能管一时,黑客可能在你扫完第二天就挂了新的。把检测变成自动化的持续监控,才能第一时间发现。方案一:免费组合拳(零成本)· Sucuri SiteCheck 每周手动跑一次· Google Search Console 安全问题邮件告警(自动)· 服务器crontab + grep定时扫描关键文件· WordPress装免费版Wordfence,开启定时扫描适合:个人博客、小企业站、页面少于500
方案二:中低成本自动化· 安全狗/悬镜服务器端安装(免费版有文件监控)· Screaming Frog每周自动爬取+外链对比· Wordfence付费版实时防火墙+黑名单IP阻断· 360网站云监测(基础版约¥1000/年)适合:企业官网、电商站、页面500-5000
方案三:企业级全套· SiteLock/Sucuri付费版自动扫描+自动清理· 自建暗链扫描脚本+企业微信/钉钉告警· WAF(长亭/阿里云WAF/Cloudflare)实时拦截· 定期第三方渗透测试适合:大型站点、SaaS平台、页面5000+
三个最容易在清理完又犯的错1. 只改了被黑的文件,没改FTP/后台密码。黑客手里还有你的登录凭据,改完文件他登进去又改回来了。2. 只清理了黑链代码,没删除Webshell后门。后门文件通常是 obfuscated 的,文件名看起来像正常的(如 wp-config-sample.php、class-smtp.php),不跑查杀工具根本认不出来。3. 清完立刻提交审核,没确认是否真的清理干净了。如果Google重新抓取时又发现了黑链(因为漏了一个页面),审核会被拒绝,而且下一次审核会更慢。
网站黑链这件事,发现得越晚代价越大。一个挂了四个月黑链的网站,清理+恢复排名可能要再花四到六个月,而这中间流失的流量和用户不会回来。最划算的做法是三件事同步做:用Sucuri和GSC做定期快速筛查、服务器上装D盾或安全狗做文件级监控、每隔一两周用grep命令扫一遍关键目录。三个动作加起来一个月花不了半小时,比某天打开GSC看到满屏红色告警再去亡羊补牢划算得多。


