• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            小默

            zz 反向代理

            In computer networks, a reverse proxy is a type of proxy server that retrieves resources on behalf of aclient from one or more servers. These resources are then returned to the client as though it originated from the reverse proxy itself.[1] While a forward proxy is usually situated between the client application (such as a web browser) and the server(s) hosting the desired resources, a reverse proxy is usually situated closer to the server(s) and will only return a configured set of resources.

            ---
            http://www.hackbase.com/tech/2011-02-24/62751.html

              通常的代理服務(wù)器,只用于代理內(nèi)部網(wǎng)絡(luò)對(duì) Internet 的連接請(qǐng)求,客戶機(jī)必須指定代理服務(wù)器,并將本來要直接發(fā)送到 Web 服務(wù)器上的 http 請(qǐng)求發(fā)送到代理服務(wù)器中。由于外部網(wǎng)絡(luò)上的主機(jī)并不會(huì)配置并使用這個(gè)代理服務(wù)器,普通代理服務(wù)器也被設(shè)計(jì)為在 Internet 上搜尋多個(gè)不確定的服務(wù)器,而不是針對(duì) Internet 上多個(gè)客戶機(jī)的請(qǐng)求訪問某一個(gè)固定的服務(wù)器,因此普通的 Web 代理服務(wù)器不支持外部對(duì)內(nèi)部網(wǎng)絡(luò)的訪問請(qǐng)求。當(dāng)一個(gè)代理服務(wù)器能夠代理外部網(wǎng)絡(luò)上的主機(jī),訪問內(nèi)部網(wǎng)絡(luò)時(shí),這種代理服務(wù)的方式稱為反向代理服務(wù)(也稱為逆向代理)。
              通過反向代理服務(wù)器,可以記錄用戶所有的訪問行為,但這也會(huì)帶來系統(tǒng)資源相當(dāng)大的額外開銷。但對(duì)于不同的服務(wù)器來說,其保護(hù)的資源類型是有限的,我們只需要記錄、控制用戶對(duì)我們所關(guān)心的資源的訪問即可。比如對(duì)一個(gè) mp3 服務(wù)提供商來說,只需要控制用戶對(duì) .mp3 文件的請(qǐng)求次數(shù)即可。
              從用戶訪問的角度來分,非法訪問主要有以下兩個(gè)方面:瞬間惡意多次請(qǐng)求和長時(shí)間持續(xù)攻擊。針對(duì)這兩種情況我們制定了以下控制策略:
              1) 對(duì)抗瞬間惡意攻擊
              這種情況是惡意的網(wǎng)上用戶使用多線程訪問同一資源,或者是在短時(shí)間內(nèi)訪問多個(gè)資源。對(duì)于第一種情況,可以定義一個(gè)參數(shù) m ,即同一用戶同時(shí)訪問的線程數(shù)量,若超過這個(gè)數(shù)量,則將他的請(qǐng)求暫緩發(fā)出或者廢除他的請(qǐng)求。為了對(duì)付第二種情況,訪問控制系統(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) 對(duì)抗長時(shí)間持續(xù)攻擊
              用上面提到的規(guī)則 r=F(g, t) 也可以對(duì)抗長時(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 )未訪問此類資源,則可認(rèn)為用戶是重新開始訪問。
              將 t1 、 t2 定義的比較長并不能防止惡意用戶定時(shí)攻擊。比如他為了不違反上面的規(guī)則,就每隔 8 小時(shí)下載 3 個(gè)小時(shí)。對(duì)付這種情況,可以定義多條 k 規(guī)則,例如用戶每訪問 3 分鐘就必須休息 1 分鐘;每訪問 10 分鐘必須休息 3 分鐘等。
              反向代理是訪問控制系統(tǒng)最核心的部分,其核心技術(shù)就是地址轉(zhuǎn)換。通過它可以保證使用者對(duì)客戶端計(jì)算機(jī)不進(jìn)行任何設(shè)置的情況下就使用訪問控制系統(tǒng)。從外觀看來,也就是從普通用戶看來,反向代理就像普通的 Web 服務(wù)器一樣。而反向代理所代理的每一個(gè) Web 服務(wù)器都好像是反向代理服務(wù)器中的一個(gè)目錄。例如反向代理服務(wù)器本身的 URL 是 http://reverse-proxy ,它可以代理清華主頁服務(wù)器(http://www.tsinghua.edu.cn/index.html ),普通的用戶想通過反向代理服務(wù)器來訪問清華主頁服務(wù)器就只需要訪問 http://reverse-proxy/www.tsinghua.edu.cn/index.html 就行了。
              反向代理的實(shí)現(xiàn)
              在反向代理中,等于把反向代理服務(wù)器中的目錄映射到其它需要被代理的服務(wù)器上。這樣做只能解決用戶的一次訪問問題,不能做到讓用戶通過反向代理連續(xù)訪問。因?yàn)楸淮淼姆?wù)器上的信息是未知的,對(duì)于 HTTP 協(xié)議來講,很有可能出現(xiàn)絕對(duì)地址或者絕對(duì)鏈接,這樣的話,普通用戶的下一次訪問將會(huì)跳過反向代理而直接訪問真實(shí)的服務(wù)器。這是我們不希望看到的。因此,必須對(duì)服務(wù)器返回給用戶的信息進(jìn)行過濾,將所有的絕對(duì) URL 更改成為通過反向代理的相對(duì) URL 。為此,我們使用了正則表達(dá)式對(duì)所有的鏈接進(jìn)行檢測(cè)、替換。于是就實(shí)現(xiàn)了通過反向代理連續(xù)訪問的功能。
              當(dāng)用戶的請(qǐng)求到達(dá)反向代理服務(wù)器之后,反向代理通過一定的規(guī)則將 URL 中的目錄信息解析成服務(wù)器以及端口的信息,從而進(jìn)行 socket 鏈接,即反向代理服務(wù)器模擬一個(gè)客戶端向真正的 Web 服務(wù)器發(fā)出 http 請(qǐng)求。當(dāng)?shù)玫交貞?yīng)信息的時(shí)候,通過 HTTP 頭中的 Content-Type 和文件的擴(kuò)展名來判斷得到的信息的類別。若是非 HTML 信息(如 jpg, gif, zip 等),則將其原樣照發(fā)還給用戶,若是 HTML(html, htm, shtml 等),則用先用正則表達(dá)式建立字符串識(shí)別自動(dòng)機(jī),查找 html 文本中所有的鏈接信息。例如, <a href="......"> 、 <img src="......"> 等。然后判定鏈接的類型,對(duì)于在代理范圍之內(nèi)(代理范圍之外不予理會(huì))的絕對(duì) URL (以“ http:// ”打頭),則把它改寫成通過反向代理的格式。例如
              <a href="http://www.test.org">
              就會(huì)被改成
              <a href="http://reverse-proxy/www.test.org">
              對(duì)于絕對(duì) URI (以“ / ”打頭的),也需要更改,例如
              <img src="/img/1.jpg">
              就要被改成
              <img src="/www.test.org/img/1.jpg"> 。
              對(duì)于相對(duì)鏈接,則不需要改動(dòng)。除了對(duì) HTML 本身進(jìn)行更改之外,對(duì) HTTP 的頭信息也要解析。其中最關(guān)鍵的就是對(duì) Cookie 路徑的改寫。例如收到 www.test.org 的 cookie 為
              Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/
              就要改寫成
              Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/www.test.org/
              此外,不僅是收到服務(wù)器的信息需要改寫,用戶發(fā)給服務(wù)器的請(qǐng)求信息也要改寫,其情形與上面所說的類似,這里不再舉例。

            posted on 2011-09-18 12:09 小默 閱讀(506) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Network

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            99精品久久精品一区二区| 久久久久久久综合日本亚洲| 东京热TOKYO综合久久精品| 久久久久久亚洲精品不卡| 天天综合久久久网| 中文成人无码精品久久久不卡 | 国产三级久久久精品麻豆三级| 国产91色综合久久免费| 久久久精品无码专区不卡| 亚洲香蕉网久久综合影视 | 久久久久久精品久久久久| 久久国产乱子伦精品免费强| 伊人久久大香线蕉AV一区二区| 免费观看久久精彩视频| 噜噜噜色噜噜噜久久| 国产精品久久久久乳精品爆 | 国产精品免费看久久久| 99精品国产在热久久 | 国产精品久久婷婷六月丁香| 韩国免费A级毛片久久| 亚洲国产成人久久一区WWW| 欧美激情精品久久久久| 亚洲国产精品无码久久久秋霞2| 国内精品伊人久久久久网站| 69久久精品无码一区二区| 久久精品国产亚洲AV不卡| 少妇被又大又粗又爽毛片久久黑人 | 久久久精品人妻一区二区三区蜜桃 | 久久精品人人做人人爽电影| 伊人久久大香线蕉综合影院首页| 理论片午午伦夜理片久久 | 狠狠狠色丁香婷婷综合久久俺| 久久综合香蕉国产蜜臀AV| 久久久久久综合网天天| 久久天天躁狠狠躁夜夜躁2014| 天天综合久久一二三区| 久久亚洲中文字幕精品一区| 久久免费99精品国产自在现线| 欧美性猛交xxxx免费看久久久| 欧洲性大片xxxxx久久久| 免费一级做a爰片久久毛片潮|