最新公告
  • 欢迎访问代码工坊,购买产品可享受在线工单服务!
  • 阻止网站被恶意反向代理降权的方法

      恶意反向代理的危害以及如何阻止网站被方向代理

      首先肯定会占用服务器资源,网站打开速度受影响。

      其次,别人通过代理盗用你的网站数据,对用户与不是那么智能的搜索引擎而言,相当于建了一个与你一模一样的站点,那么很有可能你的站点会进搜索引擎沙箱,甚至被降权。

      如果被恶意代理的页面,还挂有你的联盟广告(比如Adsense),这就十分危险了,如果有人点击了上面的广告,很容易被Adsense封号。

      还有很多危害,读者可以自行脑补……

      js 级别的解决方案

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

      脚本很简单,如果地址栏中的网址不是 daimagongfang.com 和 www.daimagongfang.com 中的任何一个,那么就把地址栏转向 http://www.daimagongfang.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 != 'daimagongfang.com' || $proxy_rs != 'www.daimagongfang.com' )
    {
        echo '非法反向代理访问';
        //header('Location: http://www.daimagongfang.com/');
        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!="daimagongfang.com")&&($server!="daimagongfang.com")){
        echo '本服务器禁止恶意反向代理!';
    }
    ?>

    发表评论