有极速快乐十分吗|极速快乐十分走势图|

如何阻止網站被惡意反向代理訪問

幾種級別的解決方案
服務器君一共花費了274.684 ms進行了7次數據庫查詢,努力地為您提供了這個頁面。
試試閱讀模式?希望聽取您的建議

最近有人用小站數據,利用反向代理技術,做了個小偷站。用戶訪問的是他的網址,但實質上內容數據確是我的,這是一起惡意反向代理事件。

什么是反向代理?

先說說正向代理的概念:

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

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

那么反向代理的概念呢?

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

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

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

惡意反向代理的危害

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

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

js 級別的解決方案

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

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

題外話:如何防止網站被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 != 'nowamagic.net' || $proxy_rs != 'www.bavugt.tw' ) 
{
	echo '非法反向代理訪問';
	//header('Location: http://www.bavugt.tw/');
	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.bavugt.tw")){
	echo '本服務器禁止惡意反向代理!';
}
?>

這個由于我網站的特殊性,沒試驗過,但是網上常用這種方法。

Apache httpd.conf 級別的解決方案

這個 Apache 上如何禁止我還沒搗鼓出來, Nginx 倒可以,但是我用的是 Apache,如果你知道,請告訴我下~

本文地址:http://www.bavugt.tw/librarys/veda/detail/2493,歡迎訪問原出處。

不打個分嗎?

轉載隨意,但請帶上本文地址:

http://www.bavugt.tw/librarys/veda/detail/2493

如果你認為這篇文章值得更多人閱讀,歡迎使用下面的分享功能。
小提示:您可以按快捷鍵 Ctrl + D,或點此 加入收藏

大家都在看

閱讀一百本計算機著作吧,少年

很多人覺得自己技術進步很慢,學習效率低,我覺得一個重要原因是看的書少了。多少是多呢?起碼得看3、4、5、6米吧。給個具體的數量,那就100本書吧。很多人知識結構不好而且不系統,因為在特定領域有一個足夠量的知識量+足夠良好的知識結構,系統化以后就足以應對大量未曾遇到過的問題。

奉勸自學者:構建特定領域的知識結構體系的路徑中再也沒有比學習該專業的專業課程更好的了。如果我的知識結構體系足以囊括面試官的大部分甚至吞并他的知識結構體系的話,讀到他言語中的一個詞我們就已經知道他要表達什么,我們可以讓他坐“上位”畢竟他是面試官,但是在知識結構體系以及心理上我們就居高臨下。

所以,閱讀一百本計算機著作吧,少年!

《設計模式:可復用面向對象軟件的基礎》 Erich Gamma (作者), Richard Helm (作者), Ralph Johnson (作者), John Vlissides (作者), 李英軍 (譯者), 等 (譯者)

《設計模式:可復用面向對象軟件的基礎》是引導讀者走出軟件設計迷宮的指路明燈,凝聚了軟件開發界幾十年設計經驗的結晶。四位頂尖的面向對象領域專家精心選取了最具價值的設計實踐,加以分類整理和命名,并用簡潔而易于重用的形式表達出來。本書已經成為面向對象技術人員的圣經和詞典,書中定義的23個模式逐漸成為開發界技術交流所必備的基礎知識和語匯。

更多計算機寶庫...

有极速快乐十分吗
模拟炒股和真实炒股有什么区别 11选5浙江走势图 七大对麻将胡法图片 陕西丫丫麻将怎么下载 北京麻将小游戏单机版 二人麻将怎么玩 吉林省快三开奖走势图 江苏快三遗漏一定牛 3d试机号今天晚上 意甲排名积分榜20