Citrix ADC

XML拒绝服务检查

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

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

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

  • 设置appfw概要文件<名称> -xmlDoSAction[* *屏蔽* *][* *记录* *][* *学习* *][* *数据* *][* *不* *]

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

注意:学习引擎针对拒绝服务攻击的预期行为基于配置的操作。如果操作设置为“阻止”,则引擎将获知配置的绑定值+1,当出现违规时XML解析将停止。如果配置的操作未设置为“阻止”,引擎将获知实际传入的违规长度值。

单个XML拒绝服务规则是:

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

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

    {http://prefix.example.com/path/} target_page.xml < !——NeedCopy >

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 肥皂阵列检查。启用或禁用以下soap阵列检查:

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

在本文中