网站被跳转怎么解决
昨天凌晨两点,网站我朋友老周发来一串语音,被跳语气急得像是转解家里进了贼。他经营了三年的网站独立站,流量突然归零,被跳一查后台,转解所有页面都指向了一个赌博平台。网站这不是被跳他第一次遇到这种事,但每次遇到,转解他都会在半夜里像热锅上的网站蚂蚁一样团团转。
网站被跳转,被跳说白了就是转解你的域名被劫持了。访问者输入你的网站网址,浏览器却把他们送到别处去。被跳这背后无非三种可能:域名被偷、转解服务器被黑、或者页面代码里被塞了恶意脚本。老周这次属于第一种,他的域名注册邮箱被破解,对方把DNS解析指向了自己的服务器。整个过程悄无声息,他甚至在白天还正常更新过商品。
遇到这种情况,第一步别慌着删文件、重装系统。先检查你的DNS解析记录。登录域名注册商的后台,看A记录、CNAME记录是不是还指向你原来的服务器IP。如果发现陌生的解析记录,立刻删掉,然后开启域名锁定功能,这是第一道防线。老周当时就是没开这个锁,才让对方钻了空子。
如果DNS没问题,那就要查服务器本身。用SSH登录你的主机,先看看最近的登录日志——last命令能帮你看到谁在什么时候登录过。如果发现不认识的IP,尤其是凌晨时段的登录记录,大概率是密码泄露了。赶紧改密码,别用那种“密码123”之类的弱口令,至少十六位,大小写字母加特殊符号混着来。
还有一种情况更隐蔽:你的网站代码被注入了iframe或JavaScript跳转代码。这种通常发生在用了第三方插件或者主题的时候。检查网站源码,尤其是首页文件和公共头部文件,搜索window.location或者document.location这些关键词,看看有没有指向陌生域名的代码。我见过一个案例,对方把跳转代码藏在图片文件的Exif信息里,不仔细看根本发现不了。
处理完这些技术层面的东西,别忘了检查你的服务器有没有开放不必要的端口。很多时候,攻击者是通过开放的FTP或者数据库端口进来的。关掉那些你用不上的服务,只保留必要的端口。老周后来发现,他的服务器居然开着3306端口,也就是MySQL的默认端口,而且用的是root账号加简单密码。这等于把家门钥匙挂在门口,不偷你偷谁。
最后,给你的网站加个监控。免费的可以用UptimeRobot,付费的有Pingdom,每分钟检查一次你的网站响应内容,一旦发现跳转或无法访问,立刻发短信通知你。别嫌麻烦,一次被黑的损失够你买十年监控服务了。
老周这次折腾到天亮才恢复,但流量损失已经不可逆。搜索引擎发现你跳转赌博网站,会把你降权甚至拉黑,恢复起来要花几个星期。所以,别等出了问题才想着补救。域名开启两步验证,服务器禁用root远程登录,网站文件定期备份,这三件事花不了你半小时,但能让你少熬几个夜。









