今天无意间发现了一批网站,如 http://b6x.net/ 现在你点开这个网站会显示“www.logcg.com refused to connect.”,当我第一次点开的时候我惊呆了……他竟然抄了我整个网站?!
这是一系列三位数域名网站,都是类似的操作。
等等,我发现了一点不对劲,首先这个网站外边有我博客本身并没有的白框……也就是说,这可能是个反代(反向代理)。
如果你还不知道什么是反代,看这个浅析 正向代理 反向代理 透明代理
于是我就查了一下这个域名,位于阿里云,联系方式受到原本购买域名的服务商的域名保护,解析的ip地址是cdn地址,没有任何用处。我尝试用域名屏蔽,结果人家照样显示的好好的……
在这个过程中,我又发现了一点:如果是反向代理,那网站内的域名链接都应该是代理中转的,而这个网站中,我博客的链接是没有经过任何修改的,是我原本的域名。
查看页面源代码发现,其实这个网站只有一行代码:
1 |
<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条:
1 2 3 |
add_header Strict-Transport-Security max-age=15768000; add_header Access-Control-Allow-Origin *; add_header X-Frame-Options "SAMEORIGIN"; |
这时再去刷新那个 http://b6x.net/ ,就已经是空白一片了。
参考文献
本文由 落格博客 原创撰写:落格博客 » 避免网站被恶意域名劫持
转载请保留出处和原文链接:https://www.logcg.com/archives/3507.html
我想知道是怎么发现的?
间隔太久忘记了,好像是从来路域名里找到的,我有隔一段时间就查看网站分析的习惯,看看都是从哪里来的读者hhh,于是就发现了这个网站,然后一搜索就出来了一大片……
很有用的指南,学习了
好像rss feed也误删了吧?
我用的tt-rss不能链接了呢。
[16:30:41/85472] fetch error: LibXML error 63 at line 694 (column 814): CData section not finished
应该是下面这句有些问题。
<![CDATA[去落格博客阅读完整排版的避免网站被恶意域名劫持
感觉应该是rss优化插件的问题,因为这句话我是在插件里写的,我试试加个括号能不能行……emmmmmm
还是不行,应该不是括号的事情,我看了一下,你的rss中第694行,^M这样,就可以绑定成功了。这里面多了个^M的符号。用浏览器看是看不到的,得用文本编辑器,不知道你用什么编辑,用emacs是可以看到的。 把这个删掉应该就可以了。
emmmmmm,这个bug似乎是插件的,不过这个不可见的符号我还真找到了……是在 https://www.logcg.com/archives/3456.html 里边的,似乎是一个字符被错误切开了。你看看还有没有问题啦?太感谢了~
可以了哦,但是我不能在你最后的留言下面回复,就在这里回复吧。
👌
学到了 3q!
方法挺多的,判断referer、Content-Security-Policy、JS判断都行
看了一眼我的,哦豁不怕了
add_header Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”;
add_header X-Frame-Options “SAMEORIGIN” always;
add_header X-Xss-Protection “1; mode=block” always;
add_header X-Content-Type-Options “nosniff” always;
add_header Content-Security-Policy “default-src https: ‘unsafe-inline’ ‘unsafe-eval’ data:;”;
add_header Referrer-Policy “no-referrer-when-downgrade”;
你这可比我的屌多了,大佬!
我也是心血来潮看了看来路域名,然后出来五六个这样的网站,现在他们都打不开啦哈哈哈
哈哈哈哈你需要这个网站 https://securityheaders.com/
太难了😭