最近不知道为啥?明月总是因为自己的疏忽造成一些看着很怪异的问题,比如最近明月博客上的微博同步插件就突然失效了,无法完成文章发布的同步在插件设置里死活无法获取到 Token,百思不得其解呀!最后竟然发现是因为服务器端 PHP 因为 CentOS 更新升级造成配置重置了,而 WordPress 需要 PHP 函数被禁用了,因此……。
好吧,这些小问题还都算是可以忍受的范畴,那么博客总是被劫持就是“是可忍,孰不可忍”了。在【彻底解决手机浏览器劫持问题】一文里虽然明月宣称已经彻底解决了劫持问题,但是这仅仅是解决了明月自己手机浏览器的劫持问题,还是有用户反映在百度搜索进入本博客后会出现被劫持跳转的问题。随着这次百度移动搜索推出烽火算法 2.0,开始严厉打击恶意劫持,这个问题就需要及时的解决了,否则后果严重呀。
看到了吧,百度对劫持的打击可不管你的站点是被劫持了还是被植入后门木马了,只要有劫持跳转的一律可能被作为打击对象,所以明月当前要做的就是避免博客出现劫持跳转这种情况的发生。
在对【彻底解决手机浏览器劫持问题】一文里提到的那段<iFrame>代码进行了分析后,基本可以判断这是运营商劫持造成的,至于是哪个运营商?移动、联通、电信好像没有一个好鸟吧?同时也可以看出目前博客面临的劫持主要就是基于 iFrame 的 CFS(Cross Frame Script)和 Clickjacking(点击劫持)攻击,通俗点儿将就是封杀前端一切的 iFrame 就可以解决了,这时候明月想起来在部署配置 Nginx 的时候专门有 X-Frame-Options 来设置的,我好像设置的是 SAMEORIGIN,就是只允许为同源域名下的 iFrame 页面才可以调用,然后这样的设置就被//mt.rtmark.net 这样的源地址引用给利用了,我去!
使用 X-Frame-Options 有三个可选的值:
PHP 代码:
header('X-Frame-Options:Deny');
Nginx 配置:
add_header X-Frame-Options SAMEORIGIN
Apache 配置:
Header always append X-Frame-Options SAMEORIGIN
迅速在 Nginx 配置文件里将 X-Frame-Options 修改为 DENY 后,重启 Nginx,再次在手机上不同浏览器测试好像劫持问题消失了都,看来问题确实就是出在这里了,看到这里如果您在手机端浏览器浏览本博客发现有被劫持跳转的请及时给明月留言告之哦,谢谢了!
很多人都再说给网站启用了 HTTPS 后就可以解决各种劫持问题了,目前来看并不见得,最终还是要看你的安全防范措施的,现在的劫持技术也是在不断的摸索更新中,一个小小的疏忽都可能造成被劫持成功。最近百度移动端搜索的烽火算法 2.0 上线了,为了防止自己的博客被“打击”,建议大家都多排查一下自己的网站是否存在“被劫持”的现象,特别是通过手机端百度搜索结果链接后的劫持,这个你通过被的搜索引擎是没法触发的,明月的测试排查都是任意一个手机浏览器里进入百度主页搜索本博客品牌词“明月登楼”或者“明月登楼的博客”,点击搜索结果中的本博客链接进入博客多点击几个链接后观察有无劫持跳转的。
当然,明月可能是有点儿“杞人忧天”、“风声鹤唳”了,但是活在“百度”淫威下的苦逼草根站长们好像一直过的都是这种日子嘛!目前来看只要你的站点部署启用了 HTTPS 后,被劫持的可能就大大降低了,只是需要大家注意一些配置部署方面的细节(不要犯明月这种低级错误哦!)问题都不大,但是明月还是要提醒大家正所谓“道高一尺、魔高一丈”,平时大家多注意观察和测试是个好习惯,至少可以及时发现问题,至于说运营商劫持目前除了发现就工信部举报以外没有太好的建议,据说你在工信部举报的多了以后,运营商会将你的加入到一个类似“白名单”里,这会永久不劫持,只是据说哦!多举报就会获得此殊荣的,哈哈!