Citrix ADC

管理内容类型

Web 服务器为每种内容类型添加含 MIME/类型定义的内容类型标头。Web 服务器提供许多不同类型的内容。例如,标准 HTML 被分配为“文本/HTML”MIME 类型。JPG 图像被分配为“图像/JPEG”或“图像/JPG”内容类型。普通 Web 服务器可以提供不同类型的内容,所有内容都在内容类型标题中由指定的 MIME 类型定义。

许多 Web App Firewall 筛选规则都用于筛选特定内容类型。过滤规则适用于一种类型的内容(如 HTML),并且在过滤不同类型的内容(如图像)时通常不适当。因此,Web App Firewall 会尝试确定请求和响应的内容类型,然后再过滤它们。如果 Web 服务器或浏览器未向请求或响应添加内容类型标头,Web App Firewall 将应用默认内容类型并相应筛选内容。

默认内容类型通常是“应用程序/八进制流”,具有最通用的 MIME/类型定义。MIME 类型适用于 Web 服务器可能提供的任何内容类型。但不会向 Web App Firewall 提供太多信息,以允许其选择适当的筛选。如果受保护的 Web 服务器配置为添加准确的内容类型标头,则可以为 Web 服务器创建配置文件并为其分配默认内容类型。这样做是为了提高过滤的速度和准确性。

您还可以为特定配置文件配置允许的请求内容类型列表。配置此功能后,如果 Web App Firewall 筛选与允许的某种内容类型不匹配的请求,则会阻止请求。从版本 10.5 升级到 11.0 后,不在默认允许的内容类型列表中的未知内容类型不会绑定。您可以将希望允许的其他内容类型添加到宽松的规则中。

请求必须始终为“应用程序/x-www 形式的代码”、“多部分/表单数据”或“文本 /x-gwt-rpc”类型。Web App Firewall 会阻止任何指定任何其他内容类型的请求。

注意

您不能在允许的响应内容类型列表中包含“应用程序/x-www 表单编码”或“多部分/表单数据”内容类型。

使用命令行界面设置默认请求内容类型

在命令提示符下,键入以下命令:

  • set appfw profile <name> -requestContentType <type>
  • save ns config

示例

以下示例将“text/html”内容类型设置为指定配置文件的默认值:

set appfw profile profile1 -requestContentType "text/html"
save ns config

使用命令行界面删除用户定义的默认请求内容类型

在命令提示符下,键入以下命令:

  • unset appfw profile <name> -requestContentType <type>
  • save ns config

示例

以下示例为指定配置文件取消设置默认的“text/html”内容类型,允许该类型恢复为“应用程序/八进制流”:

unset appfw profile profile1 -requestContentType "text/html"
save ns config

注意

始终使用最后一个内容类型标头进行处理,并删除剩余的内容类型标头(如果有的话)可确保后端服务器接收只有一个内容类型的请求)。

要阻止可以绕过的请求,请添加一个 Web App Firewall 策略,其规则为 HTTP.REQ.HITE(“内容类型”).COUNT.GT (1) ‘,并将配置文件作为 appfw_block

如果在没有内容类型标头的情况下收到请求,或者如果请求具有没有任何值的内容类型标头,Web App Firewall 将应用配置的 RequestContentType 值并相应地处理请求。

使用命令行界面设置默认响应内容类型

在命令提示符下,键入以下命令:

  • set appfw profile <name> -responseContentType <type>
  • save ns config

示例

以下示例将“text/html”内容类型设置为指定配置文件的默认值:

set appfw profile profile1 -responseContentType "text/html"
save ns config

使用命令行界面删除用户定义的默认响应内容类型

在命令提示符下,键入以下命令:

  • unset appfw profile <name> -responseContentType <type>
  • save ns config

示例

以下示例为指定配置文件取消设置默认的“text/html”内容类型,允许该类型恢复为“应用程序/八进制流”:

unset appfw profile profile1 -responseContentType "text/html"
save ns config

使用命令行界面将内容类型添加到允许的内容类型列表

在命令提示符下,键入以下命令:

  • bind appfw profile <name> -ContentType <contentTypeName>
  • save ns config

示例

以下示例将“text/shtml”内容类型添加到指定配置文件的允许内容类型列表中:

bind appfw profile profile1 -contentType "text/shtml"
save ns config

使用命令行界面从允许的内容类型列表中删除内容类型

在命令提示符下,键入以下命令:

  • unbind appfw profile <name> -ContentType <contentTypeName>
  • save ns config

示例

以下示例从指定配置文件的允许内容类型列表中删除“text/shtml”内容类型:

unbind appfw profile profile1 -contentType "text/shtml"
save ns config

管理编码和多部分形式的内容类型

Citrix ADC Web App Firewall 现在允许您配置窗体的 URL 编码和多部分窗体内容类型。内容类型配置类似于 XML 和 JSON 列表。基于配置,Web App Firewall 对请求进行分类,并检查是否存在 urlencode 或多部分形式的内容类型。

若要使用 Urlencode 和多部分窗体内容类型配置 Web App Firewall 配置文件 在命令提示符下键入:

bind appfw profile p2 -contentType <string>

示例:

bind appfw profile p2 -contentType UrlencodedFormContentType

bind appfw profile p2 -ContentType appfwmultipartform

使用 GUI 管理默认和允许的内容类型

  1. 导航到安全 > Web App Firewall > 配置文件
  2. 在详细信息窗格中,选择要配置的配置文件,然后单击 编辑。此时将显示配置 Web App Firewall 配置文件对话框。
  3. 配置 Web App Firewall 配置文件对话框,单击设置选项卡。
  4. 设置选项卡上,向下滚动大约一半到“内容类型”区域。
  5. 在“内容类型”区域中,配置默认请求或响应内容类型:
    • 要配置默认请求内容类型,请在“默认请求”文本框中键入要使用的内容类型的 MIME/类型定义。
    • 要配置默认响应内容类型,请在“默认响应”文本框中键入要使用的内容类型的 MIME/类型定义。
    • 要创建新允许的内容类型,请单击添加。此时 将显示“添加允许的内容类型对话框。
    • 若要编辑现有允许的内容类型,请选择该内容类型,然后单击打开。此时将显示修改允许的内容类型对话框。
  6. 要管理允许的内容类型,请单击管理允许的内容类型。
  7. 要添加新内容类型或修改现有内容类型,请单击“添加”或“打开”,然后在添加允许的内容类型修改允许的内容类型对话框中,执行以下步骤。
    1. 选中/清除“已启用”复选框可在允许的内容类型列表中包含内容类型,或将其排除在内容类型列表中。

    2. 在“内容类型”文本框中,键入描述要添加的内容类型的正则表达式,或更改现有内容类型正则表达式。

      内容类型的格式与 MIME 类型描述完全相同。

      注意:

      您可以在允许的内容类型列表中包含任何有效的 MIME 类型。由于许多类型的文档都可以包含活动内容,因此可能包含恶意内容,因此在将 MIME 类型添加到此列表时应小心谨慎。

    3. 提供简短描述,说明将此特定 MIME 类型添加到允许的内容类型列表的原因。

    4. 单击创建确定以保存您的更改。

  8. 单击关闭以关闭“管理允许的内容类型”对话框,然后返回设置选项卡。
  9. 单击确定以保存更改。

使用 Citrix ADC GUI 管理乌伦编码和多部分形式的内容类型

  1. 导航到安全 > Web App Firewall > 配置文件
  2. 在详细信息窗格中,选择要配置的配置文件,然后单击 编辑
  3. 配置 Web App Firewall 配置文件页面中,选择高级设置部分中的配置文件设置
  4. 检查的内容类型部分下,设置以下参数:

    1. 应用程序/x www 形式的铀编码。选中复选框以检查 Urlencode 的内容类型。
    2. 多部分/表单数据。选择检查以检查多部分表单内容类型。
  5. 单击确定

管理内容