Sun Java System Web Proxy Server 4.0.4 管理指南

第 13 章 透過代理伺服器篩選內容

本章說明如何篩選 URL,讓代理伺服器拒絕存取 URL,或修改代理伺服器傳回給用戶端的 HTML 和 JavaScript 內容。本章也說明如何依據用戶端使用的 Web 瀏覽器 (使用者代理程式),限制透過代理伺服器進行存取。

您可以使用 URL 篩選檔案來決定伺服器可支援的 URL。例如,您可以建立或購買文字檔,裡面包含要限制的 URL,而無需手動鍵入要支援的 URL 萬用字元式樣。此項功能讓您只須建立一個 URL 檔案,即可在許多不同的代理伺服器上使用。

您也可以依據 MIME 類型來篩選 URL。例如,您可以允許代理伺服器快取及傳送 HTML 和 GIF 檔案,但不允許其取得二進位檔或可執行檔,因為這樣可能會招致電腦病毒的風險。

本章包含下列小節:

篩選 URL

您可以使用包含 URL 的檔案來配置代理伺服器要擷取的內容。您可以設定一份代理伺服器一定支援的 URL 清單,以及一份絕不支援的 URL 清單。

例如,如果您是網際網路服務提供者,所執行的代理伺服器提供適合兒童的內容,則可設定一份 URL 清單,包含經核准適合兒童檢視的 URL。然後您可以讓代理伺服器僅擷取經過核准的 URL。如果用戶端試圖連線至不受支援的 URL,您可以讓代理伺服器傳回預設的「Forbidden」訊息,或是建立一則自訂訊息,說明用戶端無法存取該 URL 的原因。

若要依 URL 來限制存取,請透過 Server Manager 建立一個包含 URL 的檔案以允許或限制存取。您可以透過 Server Manager 完成此動作。建立好檔案後,就可以設定限制。後面幾節會討論這些程序。

建立 URL 篩選檔案

篩選檔案是一個包含 URL 清單的檔案。代理伺服器使用的篩選檔案為純文字檔案,其中包含多行採用以下式樣的 URL:

protocol://host:port/path/filename

在以下三個區段的每個區段中都可以使用常規表示式:protocolhost:portpath/filename。例如,若要為連線至 netscape.com 網域的所有協定建立一個 URL 式樣,則您應在檔案中增加以下一行:

.*://.*\\.example\\.com/.*

這一行僅在不指定連接埠號時才會作用。如需有關常規表示式的更多資訊,請參閱第 16 章, 管理範本和資源中的「瞭解常規表示式」。

如果您不想使用 Server Manager 而要自己建立檔案,請使用 [Server Manager] 頁面建立一個空的檔案,然後在該檔案中自行增加文字,或以包含常規表示式的檔案來取代該檔案。

Procedure建立篩選檔案

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Restrict URL Filter Access] 連結。

    此時會顯示 [Restrict URL Filter Access] 頁面。

  3. 從 [Create/Edit] 按鈕旁的下拉式清單中選擇 [New Filter]。

  4. 在下拉式清單右邊的文字方塊中鍵入篩選檔案的名稱,然後按一下 [Create/Edit] 按鈕。

    此時會顯示 [Filter Editor] 頁面。

  5. 在 [Filter Content] 可捲動文字方塊中鍵入 URL 及 URL 的常規表示式。

    [Reset] 按鈕可清除欄位內的所有文字。

    如需有關常規表示式的更多資訊,請參閱第 16 章, 管理範本和資源中的「瞭解常規表示式」。

  6. 按一下 [OK]。

    代理伺服器即會建立檔案,並使您返回 [Restrict URL Filter Access] 頁面。篩選檔案建立在 proxy-serverid/conf_bk 目錄中。

設定篩選檔案的預設存取

備妥內含要使用的 URL 之篩選檔案後,即可設定這些 URL 的預設存取。

Procedure設定篩選檔案的預設存取

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Restrict URL Filter Access] 連結。

    此時會顯示 [Restrict URL Filter Access] 頁面。

  3. 選擇要與篩選器一起使用的範本。

    通常您會希望建立的篩選檔案可以用於整個代理伺服器,但是您可能需要針對 HTTP 和 FTP 分別建立一組篩選檔案。

  4. 請使用 [URL Filter To Allow ] 清單選擇一個篩選檔案,其中包含您要代理伺服器支援的 URL。

  5. 請使用 [URL Filter To Deny] 清單選擇一個篩選檔案,其中包含您要代理伺服器拒絕存取的 URL。

  6. 選擇用戶端請求遭到拒絕的 URL 時,您希望代理伺服器傳回的文字。

    • 傳送代理伺服器產生的預設「Forbidden」回應。

      • 傳送含有自訂文字的文字檔或 HTML 檔案。在文字方塊中鍵入此檔案的絕對路徑。

  7. 按一下 [OK]。

  8. 按一下 [Restart Required]。此時會顯示 [Apply Changes] 頁面。

  9. 按一下 [Restart Proxy Server] 按鈕以套用變更。

內容 URL 重寫

Proxy Server 可以檢視傳回給用戶端的內容,並用別的字串來替代諸如 URL 之類的式樣。有兩種參數可以配置:來源字串及目標字串。Proxy Server 會尋找符合來源字串的文字,並取代目標字串中的文字。此功能僅在反向代理伺服器模式中才有作用。

Procedure建立 URL 重寫式樣

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Set Content URL Rewriting] 連結。

    此時會顯示 [Set Content URL Rewriting] 頁面。

  3. 從下拉式清單中選取一個資源,或指定常規表示式。

    如需有關常規表示式的更多資訊,請參閱第 16 章, 管理範本和資源中的「瞭解常規表示式」。

  4. 在 [Source Pattern] 文字方塊中指定來源字串。

  5. 在 [Destination Pattern] 文字方塊中指定目標字串。

  6. 在 [MIME Pattern] 文字方塊中指定內容類型。

  7. 按一下 [OK]。

  8. 按一下 [Restart Required]。

    此時會顯示 [ Apply Changes] 頁面。

  9. 按一下 [Restart Proxy Server] 按鈕以套用變更。

Procedure編輯 URL 重寫式樣

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Set Content URL Rewriting] 連結。

    此時會顯示 [Set Content URL Rewriting] 頁面。

  3. 按一下您要編輯的 URL 重新寫入式樣旁的 [Edit] 連結。

  4. 按一下 [OK]。

  5. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  6. 按一下 [Restart Proxy Server] 按鈕以套用變更。

Procedure刪除 URL 重寫式樣

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Set Content URL Rewriting] 連結。

    此時會顯示 [Set Content URL Rewriting] 頁面。

  3. 按一下您要刪除的 URL 重寫式樣旁的 [Remove] 連結。

    按一下 [OK] 以確認刪除。

  4. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  5. 按一下 [Restart Proxy Server] 按鈕以套用變更。

限制特定 Web 瀏覽器的存取

您可以依據用戶端 Web 瀏覽器的類型及版本,來限制對代理伺服器的存取。限制的依據為所有 Web 瀏覽器在發出請求時,傳送給伺服器的使用者代理程式標頭。

Procedure依據用戶端的 Web 瀏覽器限制對代理伺服器存取

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Set User-Agent Restriction] 連結。

    此時會顯示 [Set User-Agent Restriction ] 頁面。

  3. 從下拉式清單選取資源,或鍵入常規表示式,以符合您要 Proxy Server 支援的瀏覽器之使用者代理程式字串。

    如果您希望指定多個用戶端,請用括弧括住常規表示式,並使用 | 字元來分隔多個項目。如需有關常規表示式的更多資訊,請參閱第 16 章, 管理範本和資源中的「瞭解常規表示式」。

  4. 按一下 [Allow Only User-Agents Matching] 選項。

  5. 按一下 [OK]。

  6. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  7. 按一下 [Restart Proxy Server] 按鈕以套用變更。

阻斷請求

建議您依據上傳內容類型,來阻斷檔案上傳及其他請求。

Procedure依據 MIME 類型阻斷請求

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Set Request Blocking] 連結。

    此時會顯示 [Set Request Blocking] 頁面。

  3. 從下拉式清單選取資源,或按一下 [Regular Expression] 按鈕、鍵入常規表示式,然後按一下 [OK]。

  4. 選取您想要的請求阻斷類型。

    • [Disabled] — 停用請求阻斷

    • [Multipart MIME (File Upload)] — 阻斷所有檔案上傳

    • [MIME Types Matching Regular Expression] — 阻斷符合您鍵入的常規表示式的 MIME 類型請求。如需有關常規表示式的更多資訊,請參閱第 16 章, 管理範本和資源中的「瞭解常規表示式」。

  5. 選擇是要阻斷所有用戶端的請求,還是只阻斷符合您輸入的常規表示式之使用者代理程式的請求。

  6. 選取要阻斷請求的方法。

    選項包括:

    • [Any Method With Request Body] — 阻斷所有含請求內文的請求,不論其使用的方法為何

    • 僅適用於:

      • [POST] — 阻斷使用 POST 方法的檔案上傳請求

      • [PUT] — 阻斷使用 PUT 方法的檔案上傳請求

    • [Methods Matching Regular Expression] — 阻斷使用您所輸入的方法的所有檔案上傳請求

  7. 按一下 [ OK]。

  8. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  9. 按一下 [Restart Proxy Server] 按鈕以套用變更。

不列印外寄標頭

您可以配置代理伺服器,使其移除請求中的外寄標頭,這通常是為了安全性的考量。例如,您可能要防止顯示 From 標頭,因為此標頭會洩漏使用者的電子郵件地址。或者,您可能要篩選掉使用者代理程式標頭,讓外部伺服器無法得知貴組織使用的 Web 瀏覽器。您也可能想要在將請求轉寄至網際網路之前,移除僅在企業內部網路中使用的記錄或與用戶端相關的標頭。

此功能不會影響經過特別處理的標頭,或由代理伺服器本身產生的標頭,或使協定正常運作的必要標頭,例如 If-Modified-Since 和 Forwarded。

源自代理伺服器的轉寄標頭並不會造成安全性問題。遠端伺服器可以從連線偵測出連線的代理伺服器主機。在代理伺服器鏈中,外部代理伺服器不會列印來自內部代理伺服器的轉寄標頭。如果您不希望向遠端伺服器顯示內部代理伺服器或用戶端主機名稱,我們建議您以此方式設定您的伺服器。

Procedure不列印外寄標頭

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Suppress Outgoing Headers] 連結。

    此時會顯示 [Suppress Outgoing Headers] 頁面。

  3. 在 [Suppress Headers] 文字方塊中,鍵入不要列印的請求標頭清單,並以逗點分隔。

  4. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  5. 按一下 [Restart Proxy Server] 按鈕以套用變更。

依 MIME 類型進行篩選

您可以配置代理伺服器,使其阻斷符合 MIME 類型的某些檔案。例如,您可以設定您的代理伺服器,使其阻斷任何可執行檔或二進位檔,如此一來,所有使用您的代理伺服器的用戶端都不會下載到潛在的電腦病毒。

若您要代理伺服器支援新的 MIME 類型,可以在 Server Manager 中選擇 [Preferences] > [Create/Edit MIME],然後增加類型。如需有關建立 MIME 類型的更多資訊,請參閱建立 MIME 類型

您可以將篩選 MIME 類型與範本合併使用,如此一來,只有特定 URL 的某些 MIME 類型會被阻斷。例如,您可以阻斷來自 .edu 網域內任何電腦的可執行檔。

Procedure依 MIME 類型進行篩選

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Set MIME Filters] 連結。

    此時會顯示 [Set MIME Filters] 頁面。

  3. 選擇要用來篩選 MIME 類型的範本,或者確定您正在編輯整個伺服器。

  4. 您可以在 [Current filter] 文字方塊中鍵入符合要阻斷的 MIME 類型的常規表示式。

    例如,若要篩選掉所有應用程式,您可以鍵入 application/.* 做為常規表示式。這比針對每種應用程式類型來檢查每一 MIME 類型速度要快。常規表示式不區分大小寫。如需有關常規表示式的更多資訊,請參閱第 16 章, 管理範本和資源中的「瞭解常規表示式」。

  5. 核取要篩選的 MIME 類型。

    當用戶端試圖存取被阻斷的檔案時,代理伺服器會傳回「403 Forbidden」訊息。

  6. 按一下 [ OK]。

  7. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  8. 按一下 [Restart Proxy Server] 按鈕以套用變更。

依 HTML 標記進行篩選

您可以在傳送檔案至用戶端之前,先指定要篩選掉的 HTML 標記。這個方法可讓您篩選掉內嵌在 HTML 檔案中的物件,例如 Java Applet 及 JavaScript。若要篩選 HTML 標記,請指定開頭和結尾 HTML 標記。如此一來,代理伺服器就會在傳送檔案至用戶端之前,將那些標記內的所有文字和物件都取代成空白。

如果代理伺服器配置為快取資源,則代理伺服器會將原始 (未編輯) 的檔案儲存在快取記憶體中。

Procedure篩選掉 HTML 標記

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Set HTML Tag Filters] 連結。

    此時會顯示 [Set HTML Tag Filters] 頁面。

  3. 選擇您要修改的範本。

    您可以選擇 HTTP,也可以選擇僅指定特定 URL 的範本,例如來自 .edu 網域內主機的 URL。

  4. 選取要篩選的預設 HTML 標記。

    • APPLET 通常出現在 Java Applet 的周圍。

    • SCRIPT 表示 JavaScript 程式碼的開頭。

    • IMG 用來指定內嵌影像檔。

  5. 您可以鍵入任何要篩選的 HTML 標記。

    鍵入開頭及結尾的 HTML 標記。

    例如,若要篩選掉表單,可以在 [Start Tag] 方塊中鍵入 FORM,並在 [End Tag] 方塊中鍵入 /FORM。HTML 標記不區分大小寫。如果您要篩選的標記沒有結尾標記,例如 OBJECTIMG,則可以將 [End Tag] 方塊保留空白。

  6. 按一下 [ OK]。

  7. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  8. 按一下 [Restart Proxy Server] 按鈕以套用變更。

為內容壓縮配置伺服器

Proxy Server 支援 HTTP 內容壓縮。透過內容壓縮,您可以加快對用戶端的傳送速度,還可以提供更高的內容量,而不會增加硬體消耗。內容壓縮縮短了內容的下載時間,使需要撥號與多次連線的使用者明顯受益。

透過內容壓縮,您的 Proxy Server 可以傳送壓縮過的資料,並指示瀏覽器即時將資料解壓縮。壓縮可以減少傳送的資料量,並加快頁面顯示速度。

將伺服器配置為依需要壓縮內容

您可以將 Proxy Server 配置為即時壓縮傳輸資料。動態產生的 HTML 頁面只有在使用者提出請求時才會存在。

Procedure將伺服器配置為依需要壓縮內容

  1. 存取 Server Manager,然後按一下 [Filters] 標籤。

  2. 按一下 [Compress Content on Demand] 連結。

    此時會顯示 [Compress Content on Demand] 頁面。

  3. 從下拉式清單中選取資源,或鍵入常規表示式。

    如需有關常規表示式的更多資訊,請參閱第 16 章, 管理範本和資源中的「瞭解常規表示式」。

  4. 指定下列資訊:

    • Activate Compress Content on Demand? 選擇伺服器是否應該為選取的資源提供預先壓縮的內容。

    • Vary Header。指定是否插入 Vary: Accept-encoding 標頭。選取 [yes] 或 [no]。若設定為 [yes],則當選取檔案的壓縮版本時,一律會插入 Vary: Accept-encoding 標頭。

      如果設定為 no,則永遠不會插入 Vary: Accept-encoding 標頭。

      依預設,該值設定為 yes。

    • Fragment Size。指定壓縮程式庫 (zlib) 使用的記憶體分段大小 (以位元組為單位),以控制每次要壓縮的內容量。預設值為 8096。

    • Compression Level。指定壓縮的層級。選擇 1 至 9 之間的值。數值 1 會產生最快的速度;數值 9 產生最佳壓縮效果。預設值為 6,在速度和壓縮效果上比較適中。

  5. 按一下 [OK]。

  6. 按一下 [Restart Required]。

    此時會顯示 [Apply Changes] 頁面。

  7. 按一下 [Restart Proxy Server] 按鈕以套用變更。