当前位置:首页 > 新闻资讯

反向代理-如何阻止网站被恶意反向代理访问(防网站镜像)

发表日期:2020-03-24文章编辑:楚亿达工作室浏览次数:    

最近有人用小站数据,利用反向代理技术,做了个小偷站。用户访问的是他的网址,但实质上内容数据确是我的,这是一起恶意反向代理事件5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

什么是反向代理? 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
先说说正向代理的概念: 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
正向代理,也就是传说中的代理,他的工作原理就像一个跳板。简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器。这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
结论就是,正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
那么反向代理的概念呢? 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
比如用户访问 http://www.nowamagic.net/librarys/veda 这个页面,但www.nowamagic.net实际上并不存在这个页面,他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
但用户并不知情,这很正常,用户一般都很笨。这里所提到的 www.nowamagic.net 这个域名对应的服务器就设置了反向代理功能。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
结论就是反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
恶意反向代理的危害 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
网站被恶意反向代理有什么危害呢?这里列举一下: 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
•首先肯定会占用服务器资源,网站打开速度受影响。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
•其次,别人通过代理盗用你的网站数据,对用户与不是那么智能的搜索引擎而言,相当于建了一个与你一模一样的站点,那么很有可能你的站点会进搜索引擎沙箱,甚至被降权。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
•如果被恶意代理的页面,还挂有你的联盟广告(比如Adsense),这就十分危险了,如果有人点击了上面的广告,很容易被Adsense封号。 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
•还有很多危害,读者可以自行脑补……5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

js 级别的解决方案5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

复制代码 代码如下:
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
<script type="text/javascript">5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
if (document.domain != 'nowamagic.net' && document.domain != 'www.nowamagic.net'){5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 window.location.href='http://www.nowamagic.net/';5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
}5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
</script>5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

脚本很简单,如果地址栏中的网址不是 nowamagic.net 和 www.nowamagic.net 中的任何一个,那么就把地址栏转向 http://www.nowamagic.net/ 。这段代码同样可以避免被人使用反向代理技术“伪造”一个跟自己一模一样的网站。5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

题外话:如何防止网站被iframe嵌入。有些人用iframe做了个框架,把我们网站嵌入其中,访客来浏览的时候,好像是在浏览他自己的网站一样,那么如何解决呢?以下方法可破:5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

复制代码 代码如下:
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
<script type="text/javascript">5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
<!--5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
if (top.location != self.location)top.location=self.location;5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
// -->5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
</script>5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

php 级别的解决方案5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

js 级别的解决方案虽然能够让恶意代理页面跳回来,但是对搜索引擎不怎么友好。下面是服务器端(PHP)的解决方案,代码比较简单,就不多说了。5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

复制代码 代码如下:
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
$proxy_rs = $this -> proxy_filter();5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
if( $proxy_rs != 'nowamagic.net' || $proxy_rs != 'www.nowamagic.net' ) 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
{5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 echo '非法反向代理访问';5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 //header('Location: http://www.nowamagic.net/');5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 exit;5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
}5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
public function proxy_filter()5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
{5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 /*5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 $svrUrl = 'http://' . $_SERVER['SERVER_NAME'].$_SERVER["PHP_SELF"];5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 if (!empty($_SERVER["QUERY_STRING"]))5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 {5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
  $svrUrl .= "?".$_SERVER["QUERY_STRING"];5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 }5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 return $svrUrl;5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 */5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 return $_SERVER['SERVER_NAME'];5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
}5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

htaccess 级别的解决方案5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

.htaccess5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

复制代码 代码如下:
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
RewriteEngine On5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
RewriteBase /5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
php_value auto_append_file proxy.php5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

proxy.php5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

复制代码 代码如下:
5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
<?php5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
$f = getenv("HTTP_X_FORWARDED_FOR");5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
$server = getenv("HTTP_HOST");5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
if (($f!="")&&($server!="nowamagic.net")&&($server!="www.nowamagic.net")){5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 echo '本服务器禁止恶意反向代理!';5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
}5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
?>5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
 

 5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

这个由于我网站的特殊性,没试验过,但是网上常用这种方法。5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

Apache httpd.conf 级别的解决方案5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室
这个 Apache 上如何禁止我还没捣鼓出来, Nginx 倒可以,但是我用的是 Apache,如果你知道,请告诉我下~5LM贵阳网站建设|贵阳网站设计|网站制作|网页设计—楚亿达工作室

如没特殊注明,文章均为楚亿达工作室原创,转载请注明来自http://www.cydidc.com/news/cyd148.html