多种方法阻止网站被恶意反向代理

时间:2014-12-15    作者:admin    分类: 技术交流


恶意反向代理的危害以及如何阻止网站被方向代理
首先肯定会占用服务器资源,网站打开速度受影响。
其次,别人通过代理盗用你的网站数据,对用户与不是那么智能的搜索引擎而言,相当于建了一个与你一模一样的站点,那么很有可能你的站点会进搜索引擎沙箱,甚至被降权。
如果被恶意代理的页面,还挂有你的联盟广告(比如Adsense),这就十分危险了,如果有人点击了上面的广告,很容易被Adsense封号。
还有很多危害,读者可以自行脑补……
js 级别的解决方案

<script type="text/javascript">
if (document.domain != 'nmap.cc' && document.domain != 'www.nmap.cc'){
    window.location.href='https://nmap.cc/';
}
</script>



脚本很简单,如果地址栏中的网址不是 zmrbk.com 和 www.zmrbk.com 中的任何一个,那么就把地址栏转向 http://www.zmrbk.com/ 。这段代码同样可以避免被人使用反向代理技术“伪造”一个跟自己一模一样的网站。


题外话:如何防止网站被iframe嵌入。有些人用iframe做了个框架,把我们网站嵌入其中,访客来浏览的时候,好像是在浏览他自己的网站一样,那么如何解决呢?以下方法可破:

<script type="text/javascript">
<!--
if (top.location != self.location)top.location=self.location;
// -->

</script> 



php 级别的解决方案
js 级别的解决方案虽然能够让恶意代理页面跳回来,但是对搜索引擎不怎么友好。下面是服务器端(PHP)的解决方案,代码比较简单,就不多说了。


$proxy_rs = $this -> proxy_filter();
if( $proxy_rs != 'nmap.cc' || $proxy_rs != 'www.nmap.cc' )
{
    echo '非法反向代理访问';
    //header('Location: http://www.nmap.cc/');
    exit;
}

public function proxy_filter()
{
    /*
    $svrUrl = 'http://' . $_SERVER['SERVER_NAME'].$_SERVER["PHP_SELF"];
    if (!empty($_SERVER["QUERY_STRING"]))
    {
        $svrUrl .= "?".$_SERVER["QUERY_STRING"];
    }

    return $svrUrl;
    */
    return $_SERVER['SERVER_NAME'];
}



htaccess 级别的解决方案


.htaccess

RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php
proxy.php

<?php
$f = getenv("HTTP_X_FORWARDED_FOR");
$server = getenv("HTTP_HOST");
if (($f!="")&&($server!="nmap.cc")&&($server!="www.nmap.cc")){
    echo '本服务器禁止恶意反向代理!';
}
?>


这个是网上常用这种方法

标签: 反向代理