Sun Java logo     上一页      目录      索引      下一页     

Sun logo
Sun Java System Web Proxy Server 4.0.1 管理指南 

第 13 章
通过代理服务器过滤内容

本章介绍如何过滤 URL,以使代理服务器或者禁止访问该 URL,或者修改其返回给客户机的 HTML 和 JavaScript 内容。本章还将介绍如何才能基于客户机所使用的 Web 浏览器(用户代理)通过代理服务器来限制访问。

代理服务器允许使用 URL 过滤器文件来确定服务器所支持的 URL。例如,可以创建或购买一个包含所要限制 URL 的文本文件,而不用手动键入要支持的 URL 的通配符模式。利用此特性可创建一个含有 URL 的文件,以便能在多个不同的代理服务器上使用。

还可以基于各自的 MIME 类型来过滤 URL。例如,为防止计算机病毒的侵害,可以允许代理服务器高速缓存和发送 HTML 及 GIF 文件,但不允许它获取二进制或可执行文件。

本章包括以下各节:


过滤 URL

可以使用含 URL 的文件来配置代理服务器所检索的内容。可以建立一个代理服务器始终支持的 URL 列表,以及一个代理服务器始终不支持的 URL 列表。

例如,如果您是 Internet 服务提供商,希望所运行的代理服务器提供儿童适宜的内容,则可以建立一个准许儿童查看的 URL 列表。接着,可以使代理服务器仅检索准许的 URL;如果客户机试图转至不支持的 URL,则可使代理服务器返回默认的 "Forbidden" 消息,也可创建一个自定义消息,说明客户机无法访问该 URL 的原因。

要基于 URL 对访问进行限制,需要创建一个含有允许或限制的 URL 的文件。这可以通过 Server Manager 来完成。建立完该文件后,可设置一些限制。以下各节将对上述过程进行论述。

创建含 URL 的过滤器文件

过滤器文件是一个含有 URL 列表的文件。代理服务器使用的过滤器文件是纯文本文件,其中的 URL 行采用以下模式:

protocol://host:port/path/filename

可在以下三个部分中分别使用正则表达式:protocolhost:portpath/filename。例如,如果要为面向 netscape.com 域的所有协议创建一个 URL 模式,则应在文件中加入下面一行:

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

此行仅在未指定端口号时才起作用。有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。

如果您想创建自己的文件而不使用 Server Manager,则应使用 Server Manager 页面创建一个空文件,然后将您的文本添加到该文件中,或用一个包含正则表达式的文件替换该文件。

创建过滤器文件
  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 及其正则表达式。"Reset" 按钮可清除此字段中的所有文本。
  6. 有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。

  7. 单击 "OK"。

代理服务器将创建该文件,然后返回到 "Restrict URL Filter Access" 页面。过滤器文件创建于 proxy-serverid/conf_bk 目录。

设置过滤器文件的默认访问

拥有包含要使用的 URL 的过滤器文件后,就可以为这些 URL 设置默认访问。

设置过滤器文件的默认访问
  1. 访问 Server Manager,然后单击 "Filters" 选项卡。
  2. 单击 "Restrict URL Filter Access" 链接。将显示 "Restrict URL Filter Access" 页面。
  3. 选择要与过滤器一起使用的模板。
  4. 通常需要为整个代理服务器创建过滤器文件,但是也可以为 HTTP 创建一组过滤器文件,而为 FTP 创建另一组过滤器文件。

  5. 使用 "URL Filter To Allow" 列表选择一个过滤器文件,其中含有您想要代理服务器支持的 URL。
  6. 使用 "URL Filter To Deny" 列表选择一个过滤器文件,其中含有您想要代理服务器拒绝访问的 URL。
  7. 选择当客户机请求被拒绝的 URL 时想要代理服务器向其返回的文本。可选择以下两个选项之一:
    • 可发送代理服务器生成的默认 "Forbidden" 响应。
    • 可发送一个文本或含自定义文本的 HTML 文件。在文本框中键入此文件的绝对路径。
  8. 单击 "OK"。
  9. 单击 "Restart required"。将显示 "Apply Changes" 页面。
  10. 单击 "Restart Proxy Server" 按钮以应用更改。


内容 URL 重写

Proxy Server 4 能够检查即将返回给客户机的内容并用其他字符串替换模式(如 URL)。有两个可以配置的参数——源字符串和目标字符串。Proxy Server 会寻找与源字符串匹配的文本,并以目标字符串中的文本取而代之。此特性仅在反向代理模式下起作用。

创建 URL 重写模式
  1. 访问 Server Manager,然后单击 "Filters" 选项卡。
  2. 单击 "Set Content URL Rewriting" 链接。将显示 "Set Content URL Rewriting" 页面。
  3. 从下拉式列表中选择一个资源,或指定一个正则表达式。有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。
  4. 在 "Source Pattern" 文本框中指定源字符串。
  5. 在 "Destination Pattern" 文本框中指定目标字符串。
  6. 在 "MIME Pattern" 文本框中指定内容类型。
  7. 单击 "OK"。
  8. 单击 "Restart required"。将显示 "Apply Changes" 页面。
  9. 单击 "Restart Proxy Server" 按钮以应用更改。
编辑 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" 按钮以应用更改。
删除 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 浏览器向服务器发送的用户代理标头进行限制。

基于客户机的 Web 浏览器限制对代理服务器的访问
  1. 访问 Server Manager,然后单击 "Filters" 选项卡。
  2. 单击 "Set User-Agent Restriction" 链接。将显示 "Set User-Agent Restriction" 页面。
  3. 从下拉式列表中选择资源,或键入与特定的用户代理字符串相匹配的正则表达式,该字符串用于您希望 Proxy Server 支持的浏览器。如果要指定一个以上的客户机,请用括号将正则表达式括起来,并用 | 字符将多个条目隔开。有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。
  4. 选中 "Allow Only User-Agents Matching" 选项。
  5. 单击 "OK"。
  6. 单击 "Restart Required"。将显示 "Apply Changes" 页面。
  7. 单击 "Restart Proxy Server" 按钮以应用更改。


阻止请求

您可能需要基于上载内容类型来阻止文件上载及其他请求。

基于 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 类型请求。有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。
  5. 选择要阻止所有客户机的请求还是阻止与输入的正则表达式匹配的用户代理请求。
  6. 单击单选按钮选择用于阻止请求的方法。选项包括:
    • "Any Method With Request Body"——阻止具有请求主体的所有请求(无论其使用何种方法)
    • "only for:"
      "POST"——阻止使用 POST 方法的文件上载请求
      "PUT"——阻止使用 PUT 方法的文件上载请求
    • "Methods Matching Regular Expression"——阻止使用所输入方法的所有文件上载请求
  7. 单击 "OK"。
  8. 单击 "Restart Required"。将显示 "Apply Changes" 页面。
  9. 单击 "Restart Proxy Server" 按钮以应用更改。


抑制外出标头

可以对代理服务器进行配置,使其从请求中删除外出标头(通常是出于安全原因)。例如,您可能需要防止 From 标头外发,因为它会暴露用户的电子邮件地址,或者,您可能需要过滤掉用户代理标头,这样外部服务器便无法确定您的组织所使用的 Web 浏览器。您可能还想在请求转发到 Internet 前删除仅在您的内联网中使用的日志记录或与客户机相关的标头。

此功能不影响经过特殊处理的标头或由代理本身生成的标头,也不影响使协议正常工作所需的标头(如 If-Modified-Since 和 Forwarded)。

虽然不能阻止代理产生转发的标头,但这不是一个安全问题。远程服务器可通过连接检测到正在连接的代理主机。在代理链中,来自内部代理服务器的转发标头可由一个外部代理服务器抑制。当您不想将内部代理服务器或客户机主机名暴露给远程服务器时,建议您以这种方式设置服务器。

抑制外出标头
  1. 访问 Server Manager,然后单击 "Filters" 选项卡。
  2. 单击 "Suppress Outgoing Headers" 链接。将显示 "Suppress Outgoing Headers" 页面。
  3. 在 "Suppress Headers" 文本框中输入要抑制的请求标头列表,各标头之间以逗号分隔。例如,要抑制 From 和 User-Agent 标头,请键入 from,user-agent。键入的标头不区分大小写。有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。
  4. 单击 "Restart Required"。将显示 "Apply Changes" 页面。
  5. 单击 "Restart Proxy Server" 按钮以应用更改。


按 MIME 类型过滤

可以对代理服务器进行配置,使其阻止与某种 MIME 类型匹配的某些文件。例如,可将代理服务器设置成阻止任何可执行文件或二进制文件,以使任何使用代理服务器的客户机均无法下载可能的计算机病毒。

如果想要代理服务器支持新的 MIME 类型,请在 Server Manager 中选择 "Preferences" > "Create/Edit MIME Types",然后添加类型。有关创建 MIME 类型的更多信息,参见创建新的 MIME 类型

可将过滤 MIME 类型与模板相结合,这样对于特定 URL 就能仅阻止某些 MIME 类型。例如,可阻止来自 .edu 域中任何计算机的可执行文件。

按 MIME 类型过滤
  1. 访问 Server Manager,然后单击 "Filters" 选项卡。
  2. 单击 "Set MIME Filters" 链接。将显示 "Set MIME Filters" 页面。
  3. 选择要对过滤 MIME 类型使用的模板,或确保对整个服务器进行编辑。
  4. 在 "Current filter" 文本框中,可键入与所要阻止的 MIME 类型匹配的正则表达式。
  5. 例如,要过滤掉所有应用程序,可键入正则表达式 application/.*。这比检查每个应用程序类型的每个 MIME 类型更快。正则表达式不区分大小写。有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。

  6. 选择要过滤的 MIME 类型。当客户机试图访问被阻止的文件时,代理服务器会返回 "403 Forbidden" 消息。
  7. 单击 "OK"。
  8. 单击 "Restart Required"。将显示 "Apply Changes" 页面。
  9. 单击 "Restart Proxy Server" 按钮以应用更改。


按 HTML 标记过滤

代理服务器允许指定在将文件传给客户机之前所要过滤掉的 HTML 标记。借此可以过滤掉一些对象,如嵌入在 HTML 文件中的 Java applet 和 JavaScript。要过滤 HTML 标记,请指定开始和结束 HTML 标记。这样,在将文件发送给客户机之前,代理服务器便会用空白替代这些标记中的所有文本和对象。


如果代理已配置为高速缓存原始(未编辑的)文件,它就会将该资源存储在高速缓存中。


过滤掉 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 标记。
  6. 例如,要过滤掉表单,可在 "Start Tag" 框中键入 FORM(HTML 标记不区分大小写),在 "End Tag" 框中键入 /FORM。如果要过滤的标记没有结束标记(如 OBJECTIMG),可将 "End Tag" 框留空。

  7. 单击 "OK"。
  8. 单击 "Restart Required"。将显示 "Apply Changes" 页面。
  9. 单击 "Restart Proxy Server" 按钮以应用更改。


配置服务器的内容压缩

Proxy Server 支持 HTTP 内容压缩。通过内容压缩可以提高向客户机传送的速度,而且无需增加硬件开支即可提高内容量。内容压缩减少了内容的下载时间,对使用拨号连接和高流量连接的用户尤其有用。

采用内容压缩时,Proxy Server 会发出经过压缩的数据并指示浏览器如何即时解压缩数据,从而可以减少数据发送量并提高页面显示速度。

将服务器配置成按即时请求压缩内容

可以对 Proxy Server 进行配置,使其即时地压缩传输数据。动态生成的 HTML 页面仅在用户提出请求时才存在。

将服务器配置成按即时请求压缩内容
  1. 访问 Server Manager,然后单击 "Filters" 选项卡。
  2. 单击 "Compress Content on Demand" 链接。将显示 "Compress Content on Demand" 页面。
  3. 从下拉式列表中选择资源,或指定一个正则表达式。有关正则表达式的更多信息,参见管理模板和资源中的“了解正则表达式”。
  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" 按钮以应用更改。


上一页      目录      索引      下一页     


文件号码 819-3162。版权所有 2005 Sun Microsystems, Inc. 保留所有权利。