A-A+

如何禁止网站被反向代理

2016年01月07日 PHP技术文章 评论 19 条 阅读 24 views 次

前几天两个站点被别人完全境像代理,基本上就是直接让他给复制过去了,我也是醉了,直接镜像过去,然后再缓存到他自己的服务器上面,真是绝了,你自己的站点再加什么代理去反代理也不管用了,因为他的站点根本就不变,使用了 .htaccess 来反代理,也使用了 js 判断域名都不管用,所以我一直在判断他使用了缓存机制,如果不使用缓存,时时代理的话肯定是可以的,夏日博客先把这两种方法来总结一下吧。

一、使用 .htaccess 禁止反向代理

在站点根目录下新建 .htaccess 文件,然后添加如下的内容:

RewriteEngine On

RewriteBase /

php_value auto_append_file proxy.php

再新建 proxy.php 文件,添加如下代码保存.

  1. <?php  
  2. $f = getenv("HTTP_X_FORWARDED_FOR");  
  3. $url = "https://www.xiariboke.net";  
  4. if ($f!=""){  
  5. print "“;  
  6. print ““;  
  7. }  
  8. ?>  

二、使用 js 代码判断域名

  1. <script type="text/javascript">  
  2. if (document.domain != 'xiariboke.net' && document.domain != 'www.xiariboke.net'){  
  3. window.location.href='http://www.xiariboke.net/';  
  4. }  
  5. </script>  

这种是首先判断他的域名是不是 xiariboke.net 这个域名,如果是则正常访问,如果不是则跳转到原网站。

三、使用 php 判断域名

这种方法跟使用 js 代码来跳转域名是一个道理,都是先判断域名,如果是代理的域名则进行跳转,代码如下:

  1. <P><?php </P>  
  2. <P>if($_SERVER['SERVER_NAME'] != 'xiariboke.net' ||$_SERVER['SERVER_NAME'] != 'www.xiariboke.net' )   
  3. {  
  4. exit('非法反向代理访问');  
  5. }</P>  
  6. <P>?></P>  

如果是时时代理的话,上面三种方法就已经足够了,但如果他使用了缓存,将代理的网站缓存到他自己的服务器上面,再使用这些就不管用了,因他被他代理的站都不更新了,你再怎么改都不行,尤其现在的阿里云CDN,360CDN又怎么牛,而我的站点使用的就是阿里云CDN,上面有个防止外链,把防外链给开启才解决。

一般的网站CSS,JS调用基本上用的都是绝对路径,所以我们可以重命名CSS,JS的文件包以达到对别人境像网站的控制,把他的页面搞乱,这样相信坚持不了几天,他就会换成其它网站了。

标签:

19 条留言  访客:19 条  博主:0 条

  1. helloyanc

    用js跳转,被察觉后代码被替换,无效
    封禁ip,对方现在是用各种代理,国内国外的无数IP模拟百度蜘蛛每天爬你的网站,并将内容缓存到自己服务器,ip已经封了上百个了还是封不完,内容还是天天被偷,这种情况还能怎么办

    • smiling

      无解。

  2. 柒号淘金

    我的目前已经被别人完全复制,我更新文章后,对方的文章不是马上就更新的,试试你的方法,哎。真尼玛的累啊

  3. 小乐

    你好。我站是iis7.5的  需要将.htaccess 转成web.config 但是提示rewritebase不被iis识别。怎么办呢。
    好急哦。朋友

  4. 明月登楼

    一、使用 .htaccess 禁止反向代理
    我使用这个的话连我自己都不能访问网站了!

  5. 玉满斋

    恶意镜像真的很讨厌!我最近都被坑了!百度给降权了都!郁闷死了!

    • smiling

      一旦发现得及时处理才行。

  6. Koolight

    JS添加了,可还是不能跳转回来,如果用php方法,要将代码添加在哪里的?

    • smiling

      你得看对方镜像的源码里面是不是把跳转的代码都改了,如果是的话这种方法是不起作用的。

  7. 新手

    楼主这个JS代码里面的域名是填写他的网站域名吧? 不是填自己的吧?

    • smiling

      自己的域名。

      • 新手

        为何我填写自己的域名网站都打不开了… 难道网站用了cdn的原因?

        • smiling

          你看代码,如果是自己的站点的话正常打开,如果是其它的站点镜像的话跳转到自己的网站。

  8. 洋洋

    楼主你上面的 JS 是放在每个页面还是只有首页

    • smiling

      所有页面。

  9. lajiz

    不管用……

  10. 小哥

    学习下

  11. 微部落博客

    我也遇到过跟我自己一样的网站,很奇怪

  12. 懿古今

    我那个boke112就被人反向代理了,用了JS的办法,好想不太管用

给我留言