[計(jì)算機(jī)]何為“反向代理”_第1頁
[計(jì)算機(jī)]何為“反向代理”_第2頁
[計(jì)算機(jī)]何為“反向代理”_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.何為“反向代理”通常的代理服務(wù)器,只用于代理內(nèi)部網(wǎng)絡(luò)對 Internet 的連接請求,客戶機(jī)必須指定代理服務(wù)器,并將本來要直接發(fā)送到 Web 服務(wù)器上的 http 請求發(fā)送到代理服務(wù)器中。由于外部網(wǎng)絡(luò)上的主機(jī)并不會配置并使用這個(gè)代理服務(wù)器,普通代理服務(wù)器也被設(shè)計(jì)為在 Internet 上搜尋多個(gè)不確定的服務(wù)器,而不是針對 Internet 上多個(gè)客戶機(jī)的請求訪問某一個(gè)固定的服務(wù)器,因此普通的 Web 代理服務(wù)器不支持外部對內(nèi)部網(wǎng)絡(luò)的訪問請求。當(dāng)一個(gè)代理服務(wù)器能夠代理外部網(wǎng)絡(luò)上的主機(jī),訪問內(nèi)部網(wǎng)絡(luò)時(shí),這種代理服務(wù)的方式稱為反向代理服務(wù)(也稱為逆向代理)。通過反向代理服務(wù)器,可以記錄用戶所有的訪

2、問行為,但這也會帶來系統(tǒng)資源相當(dāng)大的額外開銷。但對于不同的服務(wù)器來說,其保護(hù)的資源類型是有限的,我們只需要記錄、控制用戶對我們所關(guān)心的資源的訪問即可。比如對一個(gè) mp3 服務(wù)提供商來說,只需要控制用戶對 .mp3 文件的請求次數(shù)即可。從用戶訪問的角度來分,非法訪問主要有以下兩個(gè)方面:瞬間惡意多次請求和長時(shí)間持續(xù)攻擊。針對這兩種情況我們制定了以下控制策略:1) 對抗瞬間惡意攻擊這種情況是惡意的網(wǎng)上用戶使用多線程訪問同一資源,或者是在短時(shí)間內(nèi)訪問多個(gè)資源。對于第一種情況,可以定義一個(gè)參數(shù) m ,即同一用戶同時(shí)訪問的線程數(shù)量,若超過這個(gè)數(shù)量,則將他的請求暫緩發(fā)出或者廢除他的請求。為了對付第二種情況,

3、訪問控制系統(tǒng)應(yīng)定義兩個(gè)參數(shù),一個(gè)是時(shí)間 t ,以秒為單位。第二個(gè)是資源個(gè)數(shù) g 。用這兩個(gè)參數(shù)確定一個(gè)規(guī)則 r ,即 r=F(g, t) 。 r 的含義就是最多允許網(wǎng)上用戶在 t 秒內(nèi)訪問 g 個(gè)資源。同時(shí),規(guī)則 r 可以有多條,這樣為精確控制帶來方便。2) 對抗長時(shí)間持續(xù)攻擊用上面提到的規(guī)則 r=F(g, t) 也可以對抗長時(shí)間持續(xù)下載。這里再定義一種規(guī)則 k=F(t1,t2) 。 t1 、 t2 都是時(shí)間長度,以秒為單位。 t1 是最長持續(xù)時(shí)間。 t2 是判斷用戶是否連續(xù)訪問的間隔時(shí)間。例如可以規(guī)定網(wǎng)上用戶連續(xù)訪問一類資源 3 小時(shí)(參數(shù) t1 ),若有 8 小時(shí)(參數(shù) t2 )未訪問此類

4、資源,則可認(rèn)為用戶是重新開始訪問。將 t1 、 t2 定義的比較長并不能防止惡意用戶定時(shí)攻擊。比如他為了不違反上面的規(guī)則,就每隔 8 小時(shí)下載 3 個(gè)小時(shí)。對付這種情況,可以定義多條 k 規(guī)則,例如用戶每訪問 3 分鐘就必須休息 1 分鐘;每訪問 10 分鐘必須休息 3 分鐘等。反向代理是訪問控制系統(tǒng)最核心的部分,其核心技術(shù)就是地址轉(zhuǎn)換。通過它可以保證使用者對客戶端計(jì)算機(jī)不進(jìn)行任何設(shè)置的情況下就使用訪問控制系統(tǒng)。從外觀看來,也就是從普通用戶看來,反向代理就像普通的 Web 服務(wù)器一樣。而反向代理所代理的每一個(gè) Web 服務(wù)器都好像是反向代理服務(wù)器中的一個(gè)目錄。例如反向代理服務(wù)器本身的 URL

5、是 http:/reverse-proxy ,它可以代理網(wǎng)絡(luò)安全服務(wù)器( ),普通的用戶想通過反向代理服務(wù)器來訪問網(wǎng)絡(luò)安全服務(wù)器就只需要訪問 http:/reverse-proxy/ 就行了。反向代理的實(shí)現(xiàn)在反向代理中,等于把反向代理服務(wù)器中的目錄映射到其它需要被代理的服務(wù)器上。這樣做只能解決用戶的一次訪問問題,不能做到讓用戶通過反向代理連續(xù)訪問。因?yàn)楸淮淼姆?wù)器上的信息是未知的,對于 HTTP 協(xié)議來講,很有可能出現(xiàn)絕對地址或者絕對鏈接,這樣的話,普通用戶的下一次訪問將會跳過反向代理而直接訪問真實(shí)的服務(wù)器。這是我們不希望看到的。

6、因此,必須對服務(wù)器返回給用戶的信息進(jìn)行過濾,將所有的絕對 URL 更改成為通過反向代理的相對 URL 。為此,我們使用了正則表達(dá)式對所有的鏈接進(jìn)行檢測、替換。于是就實(shí)現(xiàn)了通過反向代理連續(xù)訪問的功能。當(dāng)用戶的請求到達(dá)反向代理服務(wù)器之后,反向代理通過一定的規(guī)則將 URL 中的目錄信息解析成服務(wù)器以及端口的信息,從而進(jìn)行 socket 鏈接,即反向代理服務(wù)器模擬一個(gè)客戶端向真正的 Web 服務(wù)器發(fā)出 http 請求。當(dāng)?shù)玫交貞?yīng)信息的時(shí)候,通過 HTTP 頭中的 Content-Type 和文件的擴(kuò)展名來判斷得到的信息的類別。若是非 HTML 信息(如 jpg, gif, zip 等),則將其原樣照發(fā)

7、還給用戶,若是 HTML(html, htm, shtml 等),則用先用正則表達(dá)式建立字符串識別自動機(jī),查找 html 文本中所有的鏈接信息。例如, <a href=”> 、 <img src=”> 等。然后判定鏈接的類型,對于在代理范圍之內(nèi)(代理范圍之外不予理會)的絕對 URL (以“ http:/ ”打頭),則把它改寫成通過反向代理的格式。例如<a href=””>就會被改成<a href=”http:/reverse-proxy/”>對于絕對 URI (以“ / ”打頭的),也需要更改,例如<img src=”/img/1.jpg”>就要被改成<img src=”//img/1.jpg”> 。對于相對鏈接,則不需要改動。除了對 HTML 本身進(jìn)行更改之外,對 HTTP 的頭信息也要解析。其中最關(guān)鍵的就是對 Cookie 路徑的改寫。例如收到 的 cookie 為Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/就要改寫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論