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

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

<script type=”text/javascript”>
if (document.domain != ‘zmrbk.com’ && document.domain != ‘www.zmrbk.com’){
    window.location.href=’http://www.zmrbk.com/’;
}
</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 != ‘zmrbk.com’ || $proxy_rs != ‘www.zmrbk.com’ )
{
    echo ‘非法反向代理访问’;
    //header(‘Location: http://www.zmrbk.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!=”zmrbk.com”)&&($server!=”www.zmrbk.com”)){
    echo ‘本服务器禁止恶意反向代理!’;
}
?>

这个是网上常用这种方法

文章来自http://www.zmrbk.com/zmr/fd

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您必须启用javascript在这里看到验证码!