ADC

管理内容类型

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

许多 Web App Firewall 过滤规则旨在筛选特定的内容类型。过滤规则适用于一种类型的内容,例如 HTML,在筛选其他类型的内容(例如图像)时通常不合适。因此,Web App Firewall 会尝试在过滤请求和响应之前确定请求和响应的内容类型。如果 Web 服务器或浏览器未向请求或响应添加 Content-Type 标头,则 Web App Firewall 会应用默认内容类型并相应地筛选内容。

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

您还可以为特定配置文件配置允许的请求内容类型列表。配置此功能后,如果 Web App Firewall 筛选的请求与允许的内容类型之一不匹配,则会阻止该请求。

请求必须始终属于“application/x-www-form-urlencoded”、“multipart/form-data”或“text/x-gwt-rpc”类型。Web App Firewall 会阻止任何指定了任何其他内容类型的请求。

注意

您不能将“application/x-www-form-urlencoded”或“multipart/form-data”内容类型包含在允许的响应内容类型列表中。

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

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

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

示例

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

set appfw profile profile1 -requestContentType "text/html"
save ns config
<!--NeedCopy-->

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

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

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

示例

以下示例取消了指定配置文件的默认内容类型“text/html”,允许该类型恢复为“application/octet-stream”:

unset appfw profile profile1 -requestContentType "text/html"
save ns config
<!--NeedCopy-->

注意

请务必使用最后的内容类型标头进行处理,并删除剩余的内容类型标头(如果有),以确保后端服务器仅收到一种内容类型的请求。

要阻止可以绕过的请求,请添加一个 Web App Firewall 策略,其规则为 HTTP.REQ.HEADER (“content-type”).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
<!--NeedCopy-->

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

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

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

示例

以下示例取消了指定配置文件的默认内容类型“text/html”,允许该类型恢复为“application/octet-stream”:

unset appfw profile profile1 -responseContentType "text/html"
save ns config
<!--NeedCopy-->

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

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

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

示例

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

bind appfw profile profile1 -contentType "text/shtml"
save ns config
<!--NeedCopy-->

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

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

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

示例

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

unbind appfw profile profile1 -contentType "text/shtml"
save ns config
<!--NeedCopy-->

管理 urlencoded 和多部分格式的内容类型

Citrix ADC Web App Firewall 现在允许您为表单配置 Urlencoded 和 Multipart-Form 内容类型。内容类型配置类似于 XML 和 JSON 列表。根据配置,Web App Firewall 对请求进行分类并检查 urlencoded 或多部分格式的内容类型。

要使用 Urlencoded 和 Multipart-Form 内容类型配置 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 管理 Urlencoded 和 Multipart-Form 内容类型

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

    1. application/x-www-form-urlencoded。选中该复选框可检查 Urlencoded 的内容类型。
    2. multipart/form-data。选择复选框以检查多部分表单内容类型。
  5. 单击确定

管理内容