有一种相同,叫做双胞胎;
有一种熟悉,叫做见过;
有一种熟悉,靠,这不是我的吗!!?
网站镜像,名词解释就不必了,怎么解决这个问题,应该是头疼的事情,屏蔽 IP,它会更改 IP 会死灰复燃;js 判断域名,是个不错的方法,但是有的镜像作的很彻底,那就彻底屏蔽 js,你怎么办?将 js 代码放到触发事件中,并加入混淆。
使用 js 防止镜像方法:
- <script type=”text/javascript”>
- rthost = window.location.host;
- if (rthost != “www.reteng.org”) {
- top.location.href = “http://www.reteng.org”;
- }
- </script>
这段 js 意思是 rthost 赋值主机的 URL(window.location.host),如果 rthost 的值不等于(!= 不等于符号)www.reteng.org,网站在顶层页面打开 http://www.reteng.org(跳出框架,代码:top.location.href = “http://www.reteng.org”),这个方法适合被镜像没有屏蔽 js 的。如果屏蔽了 js 怎么办?
http://www.reteng.org.lapaleo.com 屏蔽了热腾网的所有 js,但是加入网页中的禁止代码仍起作用,那可以判断它的屏蔽方法是去<script>的头尾和其中的代码,那就把 js 加入 html 中,使用条件运行就可以了。
使用 img 链接个空图片,使用 onerror 事件运行 js 的相关命令就可以了。
js 被屏蔽后防止镜像方法:
- <div style=”display:none;”>
- <script>proxy2016 = false;</script>
- <img src=”” onerror=’setTimeout(function(){if(typeof(proxy2016)==”undefined”){window.location.href=”www.reteng.org”;}},3000);’>
- </div>
已经知道镜像网站过滤 js 的规则,所以<script>proxy2016 = false;</script> 代码将被过滤掉,img 的 onerror 设置超时时间 3000 毫秒,将运行函数部分,检测是否还存在 proxy2016 字符,如果没有找到就会将主机的 URL 改为 www.reteng.org;为了安全起见,将 js 部分可以使用 js 代码混淆(站长工具:http://tool.chinaz.com/tools/jscodeconfusion.aspx)。
热腾网的两处 js 混淆代码为:
- <script type=”text/javascript”>
- rthost = window[“x6cx6fx63x61x74x69x6fx6e”][“x68x6fx73x74”];if (rthost != “x77x77x77x2ex72x65x74x65x6ex67x2ex6fx72x67”) { window[“x6cx6fx63x61x74x69x6fx6e”][“x68x72x65x66”] = “x68x74x74x70x3ax2fx2fx77x77x77x2ex72x65x74x65x6ex67x2ex6fx72x67”;}
- </script>
- <div style=”display:none;”>
- <script>proxy2016 = false;</script>
- <img src=”” onerror=’setTimeout(function(){if(typeof(proxy2016)==”undefined”){window[“x6cx6fx63x61x74x69x6fx6e”][“x68x6fx73x74″]=”x77x77x77x2ex72x65x74x65x6ex67x2ex6fx72x67”;}},3000);’>
- </div>
另外网站镜像过滤方法:
1、禁止镜像服务器的 IP 访问,CDN 可以在 CDN 中将对方 IP 加入黑名单,虚拟主机可以使用.htaccess,或这主机控制面板中加入黑名单。
2、禁止 UA 暂时想到的方法,测试过,可用。
PS:上面的 js 判断方法可用于网站广告屏蔽后的提示!
后记:
近日有网友 Q 我说,从 boke112 那里 js 的防止镜像中 img 链接个空图片,使用 onerror 事件的方法在火狐浏览器下失效,不起作用。不知结果的我下载了个火狐浏览器测试,果然如此。任何网站均可使用的简易方法怎么能失效,实际原因就是代码的不兼容。问题在于 img 这个标签上。
处理方法:img 标签的 src 属性中引用无效的图片地址,或者将 src=后面的英文双引号改为中文引号或者在英文的双引号中加入空格。该混淆的地方要混淆,镜像站也在提高自己的技术。
- <div style=“display:none;”>
- <script>proxy2016 = false;</script>
- <img src=“此处加入空格或添加无效的图片地址” onerror=’setTimeout(function(){if(typeof(proxy2016)==“undefined”){window.location.href=“www.reteng.org”;}},3000);’>
- </div>
为了 HTML 规范,此代码不建议加入 head 中,不明白自行查看 HTML 文档。
忠告:喜欢做网站的亲们,技术层面不能只停留在信手拿来,要敢于动手找原因。不会的可以查看 js 的相关文档。各个浏览器有各自的标准,解析的结果也不同。
boke112 测试结果:
经过 boke112 导航亲自测试,发现大部分镜像网站都会屏蔽 JS 代码,所以这篇文章中最有效的防止网站被镜像的方法就是通过触发事件来判断是否为原站域名,不是的话将会跳转到原域名。所以说,我们只需要将以下代码添加到主题目录的 header.php 文件适当位置即可(PS:记得修改为自己域名哦)。
- <div style=“display:none;”>
- <script>proxy2016 = false;</script>
- <img src=” “ onerror=’setTimeout(function(){if(typeof(proxy2016)==”undefined”){window.location.host=“boke112.com”;}},3000);’>
- </div>
来源:热腾网