去落格博客阅读完整排版的避免网站被恶意域名劫持
今天无意间发现了一批网站,如 http://b6x.net/ 现在你点开这个网站会显示“www.logcg.com refused to connect.”,当我第一次点开的时候我惊呆了……他竟然抄了我整个网站?!
这是一系列三位数域名网站,都是类似的操作。
等等,我发现了一点不对劲,首先这个网站外边有我博客本身并没有的白框……也就是说,这可能是个反代(反向代理)。
如果你还不知道什么是反代,看这个浅析 正向代理 反向代理 透明代理
于是我就查了一下这个域名,位于阿里云,联系方式受到原本购买域名的服务商的域名保护,解析的ip地址是cdn地址,没有任何用处。我尝试用域名屏蔽,结果人家照样显示的好好的……
在这个过程中,我又发现了一点:如果是反向代理,那网站内的域名链接都应该是代理中转的,而这个网站中,我博客的链接是没有经过任何修改的,是我原本的域名。
查看页面源代码发现,其实这个网站只有一行代码:
<iframe width="100%" height="100%" frameborder="0" align="center" allowfullscreen="true" allow="autoplay" id="iframe" src="https://www.logcg.com/"></iframe>
也就是说,当你打开这个网站,它就在自己的页面内加载了落格博客……
当然,这看起来似乎没什么危害,但潜在的安全问题有很多,比如他可以做透明点击劫持等等……何况我并不认识这个域名的站长。要避免这种情况,需要修改 nginx 配置,添加一个 http header add_header X-Frame-Options "SAMEORIGIN";
当然,你还有其他选项,比如 DENY 就是拒绝一切被嵌入在别的网页内的行为;SAMEORIGIN 则是一个便捷选项,万一你想自己嵌入自己的呢?只要是同一个域名来源,就可以允许,其他人不行;ALLOW-FROM URI 这个选项则是基本的白名单功能,写了谁,谁就能嵌入而不被拒绝。
这里我们使用 SAMEORIGIN,把 add_header X-Frame-Options "SAMEORIGIN"; 写入你的服务器配置当中,重启服务。
比如我这里经过改动后一共有3条:
add_header Strict-Transport-Security max-age=15768000; add_header Access-Control-Allow-Origin *; add_header X-Frame-Options "SAMEORIGIN";
这时再去刷新那个 http://b6x.net/ ,就已经是空白一片了。
避免网站被恶意域名劫持,首发于落格博客。