對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2016/6/28 5:59:46
圖解 ICAP(Internet Content Adaptation Protocol)
ICAP(Internet Content Adaptation Protocol) 是一種被代理伺服器(Proxy)所使用的協定,目前最常見的用途為做為代理伺服器的病毒掃描或是內容過濾, SquidClamav 就是透過實作 ICAP,來達成 Proxy 病毒掃描功能的最好例子。ICAP 詳細的內容被定義在 RFC 3507 之中,其中最為重要的是 ICAP 具有兩種模式-「Request Modification(Reqmod)」與「Response Modification(Respmod)」
以下以代理伺服器及網頁伺服器做為例子,解說 ICAP 運作的方式。兩種模式的運作方式,分別陳述如下。
簡而言之,對 Response content 做檢查或更改,就是 Response Modification!
參考資料:
http://www.rfc-editor.org/rfc/rfc3507.txt
http://wiki.squid-cache.org/Features/ICAP
http://squidclamav.darold.net/install.html
以下以代理伺服器及網頁伺服器做為例子,解說 ICAP 運作的方式。兩種模式的運作方式,分別陳述如下。
Request Modification
- 使用者對代理伺服器送出要求,希望取得網頁伺服器上的網頁以進行瀏覽
- 代理伺服器將使用者送出的要求轉送至 ICAP 伺服器。
- ICAP 在收到要求之後,會對使用者所送出的要求進行檢查,若檢查不通過,ICAP 伺服器可以更改使用者所送出來的要求,再回送給代理伺服器;或是檢查通過時,則不更改使用者所送出的要求,直接原封不動的回傳至代理伺服器。
例如假設使用者送出的要求為色情網站的網址,而 ICAP 伺服器檢查之後,發現是色情網站的網址,便將使用者所要求的網址更改為 www.google.com 。 - 代理伺服器執行 ICAP 伺服器所回傳的要求。
延續上一步的話,就變成為使用者至 www.google.com 取得網頁。 - www.google.com 則將網頁回傳至代理伺服器。
- 代理伺服器將 www.google.com 網頁回傳給使用者。(使用者怒而發現無法瀏覽色情網站)
簡而言之,對使用者所送出的 Request header 做檢查或更改,就是 Request Modification!
Response Modification
與 Request Modification 相似,但是代理伺服器會先執行使用者所送出的要求,例如第2步會直接至色情網站取得網頁之後,再將網頁內容交給 ICAP 伺服器檢查(第4步),結果 ICAP 伺服器發現網頁裡面含有色情圖片連結,便將所有的色情圖片連結更改為包子圖連結之後,再回傳給代理伺服器(第5步),代理伺服器則將 ICAP 伺服器更改過的網頁傳給使用者(第6步,使用者可能又怒而發現看不到圖片...)簡而言之,對 Response content 做檢查或更改,就是 Response Modification!
參考資料:
http://www.rfc-editor.org/rfc/rfc3507.txt
http://wiki.squid-cache.org/Features/ICAP
http://squidclamav.darold.net/install.html
原文出處:Jedi Linuxer: 圖解 ICAP(Internet Content Adaptation Protocol)