Citrix ADC

XML 拒绝服务检查

XML 拒绝服务(XML DoS 或 XDoS)检查会检查传入的 XML 请求,以确定它们是否与拒绝服务 (DoS) 攻击的特征匹配,并阻止这些请求。XML DoS 检查的目的是防止攻击者使用 XML 请求在您的 Web 服务器或网站上启动拒绝服务攻击。

如果使用向导或 GUI,则在“修改 XML 拒绝服务”复选对话框中的“常规”选项卡上,您可以启用或禁用“阻止”、“日志”、“统计信息”和“学习”操作:

如果使用命令行界面,则可以输入以下命令来配置 XML 拒绝服务检查:

  • set appfw profile <name> -xmlDoSAction [**block**] [**log**] [**learn**] [**stats**] [**none**]

要配置单个 XML 拒绝服务规则,必须使用 GUI。在“修改 XML 拒绝服务检查”对话框的“检查”选项卡上,选择一个规则,然后单击“打开”以打开该规则的“修改 XML 拒绝服务”对话框。各个对话框因不同的规则而异,但非常简单。有些仅允许您启用或禁用规则;有些则允许您通过在文本框中键入新值来修改数字。

单个 XML 拒绝服务规则是:

  • 最大元素深度

    将每个单独元素中嵌套级别的最大数量限制为 256。如果启用此规则,并且 Web App Firewall 检测到具有超过允许级别的最大数量的元素的 XML 请求,则会阻止请求。您可以将最大级别数修改为从一 (1) 到 65,535 的任意值。

  • 最大元素名称长度

    将每个元素名称的最大长度限制为 128 个字符。这包括扩展名称空间中的名称,其中包括 XML 路径和元素名称,格式如下:

     {http://prefix.example.com/path/}target_page.xml
    

    用户可以将最大名称长度修改为介于一 (1) 个字符和 65,535 之间的任何值。

  • 最大元素 #

    将每个 XML 文档中任意一种类型的元素的最大数量限制为 65,535。您可以将元素的最大数量修改为介于 1 到 65535 之间的任意值。

  • 最大元素子元素

    将允许每个单独元素具有的子元素(包括其他元素、字符信息和注释)的最大数量限制为 65,535。您可以将元素子元素的最大数量修改为介于 1 到 65535 之间的任意值。

  • 最大 # 属性

    将允许每个单独元素具有的最大属性数限制为 256。您可以将属性的最大数量修改为介于 1 和 256 之间的任意值。

  • 最大属性名称长度

    将每个属性名称的最大长度限制为 128 个字符。您可以将最大属性名称长度修改为介于 1 到 2048 之间的任何值。

  • 最大属性值长度

    将每个属性值的最大长度限制为 2048 个字符。您可以将最大属性名称长度修改为介于 1 到 2048 之间的任何值。

  • 最大字符数据长度

    将每个元素的最大字符数据长度限制为 65,535。您可以将长度修改为介于一 (1) 到 65,535 之间的任何值。

  • 最大文件大小

    将每个文件的大小限制为 20 MB。您可以将最大文件大小修改为任意值。

  • 最小文件大小

    要求每个文件的长度至少为 9 个字节。您可以将最小文件大小修改为表示字节数的任何正整数。

  • 最大数实体扩展

    将允许的实体扩展数限制为指定数量。默认值:1024。

  • 最大实体扩展深度

    将嵌套实体扩展的最大数量限制为不超过指定数量。默认值:32。

  • 最大命名空间 #

    限制 XML 文档中的命名空间声明的数量不超过指定的数量。默认值:16。

  • 命名空间 URI 最大长度

    将每个命名空间声明的 URL 长度限制为不超过指定字符数。默认值:256。

  • 块处理说明

    阻止请求中包含的任何特殊处理说明。此规则没有可用户修改的值。

  • DTD 区块

    阻止请求中包含的任何文档类型定义 (DTD)。此规则没有可用户修改的值。

  • 阻止外部实体

    阻止请求中对外部实体的所有引用。此规则没有可用户修改的值。

  • SOAP 阵列检查

    启用或禁用以下 SOAP 阵列检查:

    • 最大 SOAP 阵列大小。在阻止连接之前,XML 请求中所有 SOAP 数组的最大总大小。您可以修改此值。默认值:20000000。
    • 最大 SOAP 阵列排名。在阻止连接之前,XML 请求中任何单个 SOAP 数组的最大等级或维度。您可以修改此值。默认值:16。

XML 拒绝服务检查