游客发表
打开百度搜索自己的网站域名,结果出来的被挂办全是不认识的词——那种感觉,像回家发现门锁被换了。黑链
上个月帮一个做机械配件的网站老客户查站,他的被挂办独立站流量突然掉了六成。我登服务器一看,黑链根目录下多了个 ss.php,网站里面藏着几十行加密代码,被挂办解密后是黑链一串赌博关键词的跳转链接。这就是网站黑链。不是被挂办友情链接那种明面上的交换,是黑链黑客塞进你网站里的隐形外链,搜索引擎能抓到,网站普通访客看不见。被挂办
常见的黑链黑链有三种藏法。一种是 display:none 的隐藏 div,里面堆满菠菜、博彩、色情关键词,页面上完全看不到。另一种是 JS 动态注入,正常访问时页面干净,但搜索引擎蜘蛛的 UA 一过来,脚本就吐出大量外链。还有一种是 .htaccess 或 nginx 配置里做 UA 判断,只对百度蜘蛛返回被篡改的页面。
我见过最狠的一个案例:黑客在网站的 footer.php 里加了一行 eval(base64_decode(...)),每次页面加载都从远程服务器拉取最新的黑链代码。你删了这行,过几天它又回来了——因为后门不止一个。
最直接的办法:site:你的域名 在百度或 Google 搜一下,看看出来的标题和描述里有没有奇怪的词。如果出现“澳门赌场”“时时彩”这类跟你业务八竿子打不着的词,基本就中了。
再细一点,用 curl 模拟百度蜘蛛的 UA 去请求你的页面:
curl -A "Mozilla/5.0 (compatible; Baiduspider/2.0)" https://你的域名/ 对比普通浏览器访问的结果。如果返回的 HTML 不一样,那说明做了 UA cloaking,黑链实锤。
还有个笨办法但管用:把网站源码下载到本地,全局搜 display:none、visibility:hidden、position:absolute;left:-9999px 这些样式,看看有没有可疑的隐藏区块。
很多人发现黑链后,直接把可疑文件删了,结果一周后又中招。问题出在没找到入口点。
先查访问日志。在 access.log 里搜 POST 请求,看有没有异常的上传行为。重点关注 admin、upload、filemanager 这些路径的访问记录。黑客通常是通过老版本 CMS 的漏洞、弱密码后台、或者被泄露的 FTP 账号进来的。
然后排查所有 PHP 文件里有没有 eval、assert、base64_decode、gzinflate 这类危险函数被滥用。用 grep 一行命令就能扫:
grep -rn "eval\|base64_decode\|gzinflate" /www/wwwroot/你的网站目录/ --include="*.php" 别忘了检查 .htaccess、nginx.conf、crontab -l 定时任务、以及数据库里的 wp_options 表(如果是 WordPress)。黑链可能藏在任何地方。
清理完之后,改所有密码——后台、FTP、数据库、SSH,一个都别落下。CMS 和插件全部升级到最新版。后台登录加个二次验证,或者干脆限制 IP 访问。文件权限设成 644 和 755,别给 777。
装个 Wordfence 或者 安全狗 这类工具,能挡掉大部分自动化扫描。但别指望一劳永逸,我自己的做法是每周用 diff 对比一次网站文件和干净备份的差异,有变动立刻查。
最后说句实在的:黑链这东西,预防的成本远低于事后清理。一个弱密码,可能让你花三天时间擦屁股。定期备份、及时更新、别用破解版插件——这三件事做到,能避开九成的麻烦。
友情链接