如何阻止網站被惡意反向代理訪問(防網站鏡像)

什么是反向代理?

先說說正向代理的概念:

正向代理,也就是傳說中的代理,他的工作原理就像一個跳板。簡單的說,我是一個用戶,我訪問不了某網站,但是我能訪問一個代理服務器。這個代理服務器呢,他能訪問那個我不能訪問的網站,于是我先連上代理服務器,告訴他我需要那個無法訪問網站的內容,代理服務器去取回來,然后返回給我。從網站的角度,只在代理服務器來取內容的時候有一次記錄,有時候并不知道是用戶的請求,也隱藏了用戶的資料,這取決于代理告不告訴網站。

結論就是,正向代理是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發(fā)送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端??蛻舳吮仨氁M行一些特別的設置才能使用正向代理。

那么反向代理的概念呢?

比如用戶訪問 http://www.nowamagic.net/librarys/veda 這個頁面,但www.nowamagic.net實際上并不存在這個頁面,他是偷偷從另外一臺服務器上取回來,然后作為自己的內容吐給用戶。

但用戶并不知情,這很正常,用戶一般都很笨。這里所提到的 www.nowamagic.net 這個域名對應的服務器就設置了反向代理功能。

結論就是反向代理正好相反,對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置??蛻舳讼蚍聪虼?的命名空間(name-space)中的內容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務器)轉交請求,并將獲得的內容返回給客戶端,就像這些內容原本就是它自己的一樣。

惡意反向代理的危害

網站被惡意反向代理有什么危害呢?這里列舉一下:

?首先肯定會占用服務器資源,網站打開速度受影響。
?其次,別人通過代理盜用你的網站數(shù)據(jù),對用戶與不是那么智能的搜索引擎而言,相當于建了一個與你一模一樣的站點,那么很有可能你的站點會進搜索引擎沙箱,甚至被降權。
?如果被惡意代理的頁面,還掛有你的聯(lián)盟廣告(比如Adsense),這就十分危險了,如果有人點擊了上面的廣告,很容易被Adsense封號。
?還有很多危害,讀者可以自行腦補……

js 級別的解決方案

<script type="text/javascript">
if (document.domain != 'nowamagic.net' && document.domain != 'www.nowamagic.net'){
window.location.;
}
</script>

腳本很簡單,如果地址欄中的網址不是 nowamagic.net 和 www.nowamagic.net 中的任何一個,那么就把地址欄轉向 http://www.nowamagic.net/ 。這段代碼同樣可以避免被人使用反向代理技術“偽造”一個跟自己一模一樣的網站。

題外話:如何防止網站被iframe嵌入。有些人用iframe做了個框架,把我們網站嵌入其中,訪客來瀏覽的時候,好像是在瀏覽他自己的網站一樣,那么如何解決呢?以下方法可破:


<script type="text/javascript">

</script>

php 級別的解決方案

js 級別的解決方案雖然能夠讓惡意代理頁面跳回來,但是對搜索引擎不怎么友好。下面是服務器端(PHP)的解決方案,代碼比較簡單,就不多說了。


$proxy_rs = $this -> proxy_filter();
if( $proxy_rs != 'nowamagic.net' || $proxy_rs != 'www.nowamagic.net' )
{
 echo '非法反向代理訪問';
 //header('Location: http://www.nowamagic.net/');
 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!="nowamagic.net")&&($server!="www.nowamagic.net")){
 echo '本服務器禁止惡意反向代理!';
}
?>

 

免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。

2016-11-20
如何阻止網站被惡意反向代理訪問(防網站鏡像)
什么是反向代理? 先說說正向代理的概念: 正向代理,也就是傳說中的代理,他的工作原理就像一個跳板。簡單的說,我是一個用戶,我訪問不了某網站,但是我能訪問一個代理服務器。這個代理服務器呢,他能訪問那個我不能訪問的網站,于是我先連上代理服務器,告訴他我需要那個無法訪

長按掃碼 閱讀全文