ICAP-RFC3507

Posted on  May 22, 2017  in  資訊技術探索  by  Amo Chen  ‐ 2 min read

ICAP(Internet Content Adaptation Protocol) 是一種被代理伺服器(Proxy)所使用的協定,目前最常見的用途為做為代理伺服器的病毒掃描或是內容過濾,SquidClamav 就是透過實作 ICAP,來達成 Proxy 病毒掃描功能的最好例子。

ICAP 詳細的內容被定義在 RFC 3507 之中,其中最為重要的是 ICAP 具有 2 種模式- Request Modification(Reqmod)Response Modification(Respmod)

以下以代理伺服器及網頁伺服器做為例子,解說 ICAP 運作的方式。

2 種模式的運作方式,分別陳述如下。

Request Modification

  1. 使用者對代理伺服器送出要求,希望取得網頁伺服器上的網頁以進行瀏覽
  2. 代理伺服器將使用者送出的要求轉送至 ICAP 伺服器。
  3. ICAP 在收到要求之後,會對使用者所送出的要求進行檢查,若檢查不通過,ICAP 伺服器可以更改使用者所送出來的要求,再回送給代理伺服器;或是檢查通過時,則不更改使用者所送出的要求,直接原封不動的回傳至代理伺服器。 例如假設使用者送出的要求為色情網站的網址,而 ICAP 伺服器檢查之後,發現是色情網站的網址,便將使用者所要求的網址更改為 www.google.com 。 
  4. 代理伺服器執行 ICAP 伺服器所回傳的要求。 延續上一步的話,就變成為使用者至 www.google.com 取得網頁。
  5. www.google.com 則將網頁回傳至代理伺服器。
  6. 代理伺服器將 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

追蹤新知

看完這篇文章了嗎?還意猶未盡的話,追蹤粉絲專頁吧!

我們每天至少分享 1 篇文章/新聞或者實用的軟體/工具,讓你輕鬆增廣見聞提升專業能力!如果你喜歡我們的文章,或是想了解更多特定主題的教學,歡迎到我們的粉絲專頁按讚、留言讓我們知道。你的鼓勵,是我們的原力!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!