通过JS代码混淆和触发事件有效防止网站被镜像的方法

投稿  热腾网 2016-08-30 07:36 阅读 964 次 评论 71 条

有一种相同,叫做双胞胎;

有一种熟悉,叫做见过;

有一种熟悉,靠,这不是我的吗!!?

网站镜像,名词解释就不必了,怎么解决这个问题,应该是头疼的事情,屏蔽IP,它会更改IP会死灰复燃;js判断域名,是个不错的方法,但是有的镜像作的很彻底,那就彻底屏蔽js,你怎么办?将js代码放到触发事件中,并加入混淆。

通过JS代码混淆和触发事件有效防止网站被镜像的方法

使用js防止镜像方法:

  1. <script type="text/javascript">
  2. rthost = window.location.host;
  3. if (rthost != "www.reteng.org") {
  4. top.location.href = "http://www.reteng.org";
  5. }
  6. </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被屏蔽后防止镜像方法:

  1. <div style="display:none;">
  2. <script>proxy2016 = false;</script>
  3. <img src="" onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window.location.href="www.reteng.org";}},3000);'>
  4. </div>

已经知道镜像网站过滤js的规则,所以<script>proxy2016 = false;</script> 代码将被过滤掉,img的onerror设置超时时间3000毫秒,将运行函数部分,检测是否还存在proxy2016字符,如果没有找到就会将主机的URL改为www.reteng.org;为了安全起见,将js部分可以使用js代码混淆(站长工具:http://tool.chinaz.com/tools/jscodeconfusion.aspx)。
热腾网的两处js混淆代码为:

  1. <script type="text/javascript">
  2. rthost = window["x6cx6fx63x61x74x69x6fx6e"]["x68x6fx73x74"];if (rthost != "x77x77x77x2ex72x65x74x65x6ex67x2ex6fx72x67") { window["x6cx6fx63x61x74x69x6fx6e"]["x68x72x65x66"] = "x68x74x74x70x3ax2fx2fx77x77x77x2ex72x65x74x65x6ex67x2ex6fx72x67";}
  3. </script>
  4. <div style="display:none;">
  5. <script>proxy2016 = false;</script>
  6. <img src="" onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window["x6cx6fx63x61x74x69x6fx6e"]["x68x6fx73x74"]="x77x77x77x2ex72x65x74x65x6ex67x2ex6fx72x67";}},3000);'>
  7. </div>

另外网站镜像过滤方法:

1、禁止镜像服务器的IP访问,CDN可以在CDN中将对方IP加入黑名单,虚拟主机可以使用.htaccess,或这主机控制面板中加入黑名单。
2、禁止UA暂时想到的方法,测试过,可用。

PS:上面的js判断方法可用于网站广告屏蔽后的提示!

后记:

近日有网友Q我说,从boke112那里js的防止镜像中img链接个空图片,使用onerror事件的方法在火狐浏览器下失效,不起作用。不知结果的我下载了个火狐浏览器测试,果然如此。任何网站均可使用的简易方法怎么能失效,实际原因就是代码的不兼容。问题在于img这个标签上。

处理方法:img标签的src属性中引用无效的图片地址,或者将src=后面的英文双引号改为中文引号或者在英文的双引号中加入空格。该混淆的地方要混淆,镜像站也在提高自己的技术。

  1. <div style="display:none;">
  2. <script>proxy2016 = false;</script>
  3. <img src="此处加入空格或添加无效的图片地址" onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window.location.href="www.reteng.org";}},3000);'>
  4. </div>

为了HTML规范,此代码不建议加入head中,不明白自行查看HTML文档。

忠告:喜欢做网站的亲们,技术层面不能只停留在信手拿来,要敢于动手找原因。不会的可以查看js的相关文档。各个浏览器有各自的标准,解析的结果也不同。


boke112测试结果:

经过boke112导航亲自测试,发现大部分镜像网站都会屏蔽JS代码,所以这篇文章中最有效的防止网站被镜像的方法就是通过触发事件来判断是否为原站域名,不是的话将会跳转到原域名。所以说,我们只需要将以下代码添加到主题目录的header.php文件适当位置即可(PS:记得修改为自己域名哦)。

  1. <div style="display:none;">
  2. <script>proxy2016 = false;</script>
  3. <img src=" " onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window.location.host="boke112.com";}},3000);'>
  4. </div>
文章标签: ,   ,   ,  
原文地址:http://logs.reteng.org/31.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 热腾网 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress免费响应式主题:Nana

发表评论


表情

  1. 码农BTS
    码农BTS 【市长】 @回复

    感觉在哪里看到过这个贴呢

  2. 龙笑天
    龙笑天 【市长】 @回复

    在火狐上无效,不会跳转!

  3. 龙笑天
    龙笑天 【市长】 @回复

    博客兄~方法有问题哦!见这里:http://boke112.com.dijicat.com/3429.html
    刚更新了另一种更有效的方法:网站被恶意镜像怎么办 一段代码轻松搞定(全面版) – http://www.ilxtx.com/mirrored-website.html
    可以去看看~ [呲牙]

  4. 金榜台博客
    金榜台博客 【市长】 @回复

    这个方法确实是很不错,感谢分享,已经搞定了

  5. 金榜台博客
    金榜台博客 【市长】 @回复

    我昨天就在搞镜像搞了半天,今天了才发现这个好文章,用了,有效果,好文章啊,转走了

  6. 憧憬Licoy
    憧憬Licoy 【镇长】 @回复

    这个方法之前张戈博主给我讲过

  7. 成航先森
    成航先森 【镇长】 @回复

    我的想法和张戈一样,我觉得这种镜像就是使用反向代理的实时镜像。你把任何网站给它,它都像一个访客一样去访问那个网站,然后把内容返回给你。

  8. 张戈博客
    张戈博客 【镇长】 @回复

    想法不错,不过貌似没看到效果,难道是代码放错了:http://logs.reteng.org.3s3s.org/1.html
    其实这种类似的镜像基本可以无视,它并不是针对某个网站做的镜像,而是根据域名实时镜像的,而且它太慢了

  9. 苍蓝公爵
    苍蓝公爵 【镇长】 @回复

    学习了!
    不过现在博客没有名气,先收藏先,以后说不定就用上了呢?

  10. 2016年最新电影资源欢迎点击
    2016年最新电影资源欢迎点击 【县长】 @回复

    网站还没名气,

  11. 龙砚庭
    龙砚庭 【市长】 @回复

    看来我也要更新一下

  12. 南通SEO
    南通SEO 【镇长】 @回复

    这种方法可以一劳永逸吗?我们作为网站菜鸟,最好是这样,不然太烦人了!呵呵

  13. 夏日博客
    夏日博客 【县长】 @回复

    这种镜像站点最恶心了,判断域名,它能直接把域名都给批量修改了。

  14. 小事儿
    小事儿 【队长】 @回复

    网站改版了,以后就是这个ID了!

  15. 风情
    风情 【村长】 @回复

    会找个时间给网站加上防镜像,感觉好可怕

  16. 搬瓦工中文网
    搬瓦工中文网 【农民】 @回复

    这个方法不错,经常有遇到网站一模一样的。

  17. 明月登楼的博客
    明月登楼的博客 【总理】 @回复

    我前一阵子就发现被镜像了!

  18. JV
    JV 【村长】 @回复

    我是直接禁ip。
    对了,最后一段代码”undefined” 引号是中文的,是否要改成英文引号比较妥当?

    • boke112导航
      boke112导航【站长】2016-08-30 21:53  回复

      @JV符号错误,应该都是英文状态下的引号。谢谢告知,已更新。

  19. 西狂
    西狂 【镇长】 @回复

    虽然小站没有镜像的价值,但还是把代码加进去了,算是预防。

  20. 我爱动感单车网
    我爱动感单车网 【省长】 @回复

    [疑问] 这个跟张戈分享的那个方法,具体有何区别,相较而言使用哪个更好?

    • boke112导航
      boke112导航【站长】2016-08-30 15:47  回复

      @我爱动感单车网个人认为这个方法更好,张戈分享的方法目前已经算是失效,因为大部分镜像网站都会禁止JS代码,只有通过这个触发事件来判断会更好。

      • Koolight
        Koolight 【省长】2016-08-30 16:03  回复

        @boke112导航两段代码都要用上的,张戈那段代码是没混淆过,需要混淆一下再加上那个判断触发才好。镜像站的技术处理都不一样,有的混淆js有效,有的则需要判断触发。

    • 热腾网
      热腾网 【市长】2016-08-30 20:48  回复

      @我爱动感单车网镜像通常是把< script 开头的JavaScript代码和引用的文件过滤掉,这样只能通过在嵌在html中的相关js事件命令检测域名是否正常。
      onerror 事件会在文档或图像加载过程中发生错误时被触发。也就是img后面图片地址是空的原因。

  21. 微西风博客
    微西风博客 【市长】 @回复

    怎么看自己的有没有被盗版呢/

    • boke112导航
      boke112导航【站长】2016-08-30 15:48  回复

      @微西风博客复制自己网站首页的完整标题度娘一下,看看有没有自己域名的二级域名网站,有的话就是被镜像了

  22. 纯洁博客
    纯洁博客 【市长】 @回复

    怎么看有没有被镜像呢

    • boke112导航
      boke112导航【站长】2016-08-30 15:50  回复

      @纯洁博客复制自己网站首页的完整标题度娘一下,看看有没有自己域名的二级域名网站,有的话就是被镜像了

  23. 博客大全
    博客大全 【村长】 @回复

    之前的个人博客也被人镜像过,不管分享的这个方法感觉好复杂啊,有更简单的吗?

  24. benen005
    benen005 【县长】 @回复

    确实不错

  25. 小萝博客
    小萝博客 【市长】 @回复

    看看后面的效果了

  26. QQ豪杰社区
    QQ豪杰社区 【村长】 @回复

    确实实用

  27. 小宋日志
    小宋日志 【省长】 @回复

    绝对的实用,曾经被镜像过,我投诉百度,百度还删除我帖子。

  28. 捌零男人
    捌零男人 【镇长】 @回复

    捌零男人也被镜像过,没管他,不知道什么时候就挂掉了。

    • boke112导航
      boke112导航【站长】2016-08-30 15:53  回复

      @捌零男人他们好像的通杀型,什么站点都会被镜像,其实只要我们的排名比它高就行,不过据说会影响到我们正常的收录和排名,不知道是真是假

  29. videoclub
    videoclub 【省长】 @回复

    很牛叉哦

  30. 爱时尚
    爱时尚 【省长】 @回复

    好东西,我相信很多人博主的网站都莫名被镜像了!

  31. 热腾网
    热腾网 【市长】 @回复

    凌晨的时候,偷工减料,有些解释不到位,这些都可以在w3school上找到解释。

    • boke112导航
      boke112导航【站长】2016-08-30 15:54  回复

      @热腾网[呲牙] 我根据这篇文章折腾了好久才正确使用上,感觉有点不太适合小白 [偷笑]

      • 热腾网
        热腾网 【市长】2016-08-30 20:38  回复

        @boke112导航确实有人说复杂,其实就是两段代码改下域名地址的事。
        不会写内容,原本想详细解释各个代码的含义,现在我也越看越不对劲,解释有疏漏的地方。

        • boke112导航
          boke112导航【站长】2016-08-30 21:51  回复

          @热腾网[呲牙] 有机会可以完善一下,然后直接覆盖本文,只要是让小白看完也能用上,这样可能会比较好

  32. 刘传鹏博客
    刘传鹏博客 【镇长】 @回复

    学习到新知识

  33. Koolight
    Koolight 【省长】 @回复

    location 这个必须要混淆,.3s3s.org这个镜像站会把这个给修改为location_