ADC

字段格式检查

字段格式检查用于验证用户在 Web 表单中发送到您的网站的数据。它会检查数据的长度和类型,以确保它适合其出现的表单字段。如果 Web App Firewall 在用户请求中检测到不适当的 Web 表单数据,则会阻止该请求。

通过防止攻击者向您的网站发送不当的 Web 表单数据,Field Formats check 可以防止对您的网站和数据库服务器的某些类型的攻击。例如,如果某个特定字段要求用户输入电话号码,则字段格式检查用户提交的输入,以确保数据与电话号码的格式相匹配。如果特定字段需要名字,则字段格式检查可确保该字段中的数据的类型和长度适合名字。它对您配置它要保护的每个表单字段做同样的事情。

此检查仅适用于 HTML 请求。它不适用于 XML 请求。您可以在 HTML 配置文件或 Web 2.0 配置文件中配置字段格式检查,以检查 HTML 负载以保护您的应用程序。Web App Firewall 还支持 Google Web Toolkit (GWT) 应用程序的字段格式检查保护。

字段格式检查要求您启用一个或多个操作。Web App Firewall 会检查提交的输入并应用指定的操作。

注意

字段格式规则是更严格的规则。从学习的数据中将它们添加到放松列表是阻塞规则。

要放宽字段格式规则,请从字段格式放宽列表中删除特定的“字段名称”。

您可以选择设置默认字段格式以指定字段类型以及要保护的每个 Web 表单的每个表单字段中预期的最小和最大数据长度。您可以部署放松规则,为特定表单的单个字段配置字段格式。可以添加多个规则来指定字段名称、操作 URL 和字段格式。指定字段格式以接受不同表单字段中的不同类型的输入。学习功能可以为放松规则提供建议。

字段格式化操作-您可以启用“阻止”、“记录”、“统计”和“学习”操作。必须启用其中至少一项操作才能启用字段格式检查保护。

  • 阻止。如果您启用阻止,则在输入不符合指定的字段格式时会触发阻塞操作。如果为目标字段配置了规则,则将根据指定规则检查输入。否则,将根据默认字段格式规范对其进行检查。字段类型或最小/最大长度规格中的任何不匹配都会导致请求被阻止。
  • 日志。如果您启用日志功能,则字段格式校验会生成日志消息,指明其所采取的操作。您可以监视日志,以确定对合法请求的响应是否被阻止。日志消息数量的大幅增加可能表明有人企图发起攻击。
  • 统计数据。如果启用,统计功能将收集有关违规和日志的统计信息。统计计数器的意外激增可能表明您的应用程序受到攻击,或者您可能需要重新访问配置以查看指定的字段格式是否过于严格。
  • 学习。如果您不确定哪种字段类型或最小和最大长度值可能最适合您的应用程序,则可以使用 learn 功能根据学习的数据生成建议。Web App Firewall 学习引擎会监视流量,并根据观察到的值提供字段格式建议。为了在不影响性能的情况下获得最佳收益,您可能需要在短时间内启用 learn 选项以获取具有代表性的规则示例,然后部署规则并禁用学习。 注意:Web App Firewall 的学习引擎只能区分名称的前 128 个字节。如果表单具有多个字段,名称与前 128 个字节匹配,则学习引擎可能无法区分它们。同样,部署的放宽规则可能会无意中放松所有这些字段。

默认字段格式-除了配置操作外,您还可以配置默认字段格式,以指定应用程序的所有表单字段中预期的数据类型。可以选择字段类型作为字段格式类型。最小长度和最大长度参数可用于指定允许输入的长度。作为字段类型的替代方案,您可以使用字符映射来指定字段中允许的内容(群集部署除外)。

  • 字段类型—字段类型是命名表达式,您可以为其分配优先级值。字段类型表达式指定允许的输入,并与提交的数据进行匹配以确定接收到的值是否与允许的值一致。字段类型按其优先级编号的顺序进行检查。数字越小表示优先级越高。Web App Firewall 使您可以选择添加自己的字段类型并为其分配所需的优先级。优先级值的范围可以介于 0 到 64000 之间。提供以下内置字段类型以帮助简化配置过程:

     > sh appfw fieldtype
     1)      Name:  integer           Regex:  "^[+-]?[0-9]+$"
                     Priority:  30            Comment:  Integer
                     Builtin:  IMMUTABLE
     2)      Name:  alpha             Regex:  "^[a-zA-Z]+$"
                     Priority:  40            Comment:  "Alpha characters"
                  Builtin:  IMMUTABLE
     3)      Name:  alphanum          Regex:  "^[a-zA-Z0-9]+$"
                     Priority:  50            Comment:  "Alpha-numeric characters"
                     Builtin:  IMMUTABLE
     4)      Name:  nohtml            Regex:  "^[^&<>]*$"
                     Priority:  60            Comment:  "Not HTML"
                     Builtin:  IMMUTABLE
     5)      Name:  any               Regex:  "^.*$"
                  Priority:  70            Comment:  Anything
                     Builtin:  IMMUTABLE
         Done
     >
     <!--NeedCopy-->
    

    注意: 内置的字段类型是不可变的。它们无法修改或删除。您添加的任何字段类型都是可修改的。您可以编辑它们或将其删除。

    当您有一个 PCRE 表达式可以识别应用程序所有或大多数表单字段中的有效输入并排除无效输入时,将字段类型配置为默认字段格式可能会很有用。例如,如果申请表中的所有输入都应仅包含数字和字母,则可能需要使用内置的字段类型字母作为默认字段类型。输入中的任何非字母数字字符,例如反斜杠 () 或分号; 都将触发违规。您还可以添加自己的自定义字段类型,并使用它们配置默认字段格式。例如,如果您想将小写的“x”、“y”和“z”设置为唯一允许的字母字符,则可以使用正则表达式“^ [x-z] +$”配置自定义字段类型。您可以为其分配更高的优先级(优先级较低的数字),然后再为内置的字段类型分配给它,并将其用作默认字段。

  • 最小长度 -分配给没有明确设置的 Web 表单中表单字段的默认最小数据长度。默认情况下,此参数设置为 0,这允许用户将该字段留空。任何更高的设置都会强制用户填写该字段。

    注意:如果最小长度值为 0 但字段类型为整数、alpha 或 Alphanum,则尽管设置了最小长度,但如果有任何输入字段留空,则请求会被阻止。这是因为这些字段类型的正则表达式包含一个 + 字符,这意味着一个或多个字符。区分整数和阿尔法字符需要至少一个字符。

  • 最大长度-分配给没有明确设置的 Web 表单中表单字段的默认最大数据长度。默认情况下,此参数设置为 65535。

    注意:

    字符与字节。字段格式的最小和最大长度代表字节数,而不是字符数。大于一字节字符表示的语言可能会导致字符数少于为最大值配置的字符数而超过限制。例如,使用双字节字符表示时,最大值 9 允许不超过 4 个字符。GUI 允许您直接剪切 UTF-8 字符并将其粘贴到 GUI 中,而不必将其转换为十六进制。

  • 最大名称出现次数 - 请求中允许的最大表单字段名称实例数。默认值为 65535。

  • 角色地图:除了推荐字段类型外,Web App Firewall 学习引擎还为您提供了一个额外的选项,即“使用角色映射”,用于部署格式检查规则。字符映射是特定表单字段中允许的所有字符的集合。您可以使用角色映射微调字段格式规范以允许或禁止特定字符。为每个表单字段生成一个单独的字符映射。字符映射中字母和数字字符的处理方式不同。如果在输入中看到任何 alpha 字符,则字符映射中推荐的 PCRE 表达式将允许使用所有 alpha 字符 [a-za-z]。同样,如果包含任何数字,则允许使用所有数字 [0-9]。不可打印的字符是通过使用 x 构造来指定的。字符映射推荐仅考虑值介于 0-255 之间的单字节字符。

    角色映射可以比相应的字段类型推荐更具体。在某些情况下,角色映射可能是更好的选择,因为它们使您可以更严格地控制允许作为输入的字符集。部署的字符映射显示为以前缀“CM”开头后跟数字的字符串。角色地图的优先级从 10000 开始。与用户添加的字段类型一样,您可以添加、编辑或移除角色映射。无法修改或删除当前在已部署规则中使用的角色映射。

    注意事项

    • 群集部署不支持角色地图。
    • 当您使用字符映射而不是内置字段类型并使用其保存字段格式规则时,该规则不会保存更改并继续显示字段类型。
    • 当字符映射与内置类型之一匹配时,将重用该字段类型,而不是创建新的字符映射。

使用 CLI 配置字段格式检查

在命令行界面中,您可以使用 add appfw 字段类型命令来添加新的字段类型。您可以使用 set appfw profile 命令或 add appfw profile 命令来配置字段格式检查并指定要执行的操作。您可以使用 unset appfw profile 命令将配置的设置恢复为默认设置。要指定字段格式规则,请使用 bind appfw 命令将字段类型绑定到表单字段和操作 URL 以及最小和最大长度规范。

要使用 CLI 添加、删除或查看字段类型,请执行以下操作

使用 add 命令添加字段类型。添加新的字段类型时,必须指定名称、正则表达式和优先级。您还可以选择添加评论。您可以使用 show 命令显示已配置的字段类型。您也可以使用移除命令删除字段类型,该命令只需要字段类型的名称。

add [appfw] fieldType <name> <regex> <priority> [-comment <string>]

其中:

<regex> 是一个正则表达式

<priority> 是 positive_integer

示例:

add fieldtype "Cust_Zipcode" "^[0-9]{5}[-][0-9]{4}$" 4

-  show [appfw] fieldType [<name>]

    Example: sh fieldtype

    sh appfw fieldtype

    sh appfw fieldtype cust_zipcode

-  `rm [appfw] fieldType <name>`

    Example: rm fieldtype cusT_ziPcode

    `rm appfw fieldtype cusT_ziPcode`
<!--NeedCopy-->

注意:

如示例所示,在命令 appfw 中使用是可选的。例如,Add FieldTypeAdd appfw fieldType 是有效的选项。由于标准化,字段类型的名称不区分大小写。如示例所示,Cust_Zipcode、cust_zipcode 和 cUsT_ziPcode 指的是相同的字段类型。

要配置字段格式,请使用命令行检查

使用 set appfw profile 命令或 add appfw profile 命令,如下所示:

  • set appfw profile <name> -fieldFormatAction (([block] [learn] [log] [stats]) | [none])
  • set appfw profile <name>-defaultFieldFormatType <string>
  • set appfw profile <name> -defaultFieldFormatMinLength <integer>
  • set appfw profile <name> -defaultFieldFormatMaxLength <integer>
  • set appfw profile <name> -defaultFieldFormatMaxOccurrences <integer>

使用命令行配置字段格式放松规则

bind appfw profile <name> (-fieldFormat <string> <formActionURL>  <fieldType>
[-fieldFormatMinLength <positive_integer>]  [-fieldFormatMaxLength <positive_integer>]
[-isRegex ( REGEX | NOTREGEX )])
<!--NeedCopy-->

示例:

bind appfw profile pr_ffc -fieldFormat "login_name" ".*/login.php" integer -fieldformatMinLength 3 -FieldformatMaxlength 6
<!--NeedCopy-->

使用 GUI 配置字段格式安全检查

在 GUI 中,您可以管理字段类型。您还可以在窗格中为与应用程序关联的配置文件配置字段格式安全检查。

使用 GUI 添加、修改或删除字段类型

  1. 导航到应用程序防火墙节点。在“设置”中,单击“管理字段类型”以显示“配置应用程序防火墙字段类型”对话框。
  2. 单击“ 加”以添加新的字段类型。按照此窗格中的说明进行操作,然后单击“创建”。如果部署的规则当前未使用用户添加的任何字段类型,则也可以编辑或删除该字段类型。

使用 GUI 添加或修改字段格式安全检查

  1. 导航到应用程序防火墙 > 配置文件,选中目标配置文件,然后单击编辑

  2. 在“高级设置”窗格中,单击“安全检查”。

    安全检查表格显示了当前为所有安全检查配置的操作设置。您有两个配置选项:

    1. 如果您只想为字段格式启用或禁用“阻止”、“日志”、“统计”和“学习”操作,则可以选中或清除表格中的复选框,单击“确定”,然后单击“保存并关闭”以关闭“安全检查”窗格。
    2. 如果要为此安全检查配置其他选项,请双击“字段格式”,或选择该行并单击“操作设置”,以显示以下 默认字段格式选项:
      • 字段类型-选择要配置为默认字段类型的字段类型。您可以选择内置和用户定义的字段类型。已部署的角色映射也包含在列表中,可以选择。

      • 最小长度-指定每个字段中必须包含的最小字符数。可能的值:0-65535。

      • 最大长度-指定每个字段中必须包含的最大字符数。可能的值:1-65535。

      • 最大名称出现次数 - 指定请求中表单字段名称实例的最大数量。可能的值:0-65535。

        您还可以在“字段格式设置”窗格中编辑“阻止”、“记录”、“统计数据”和“学习”操作。

    进行上述任何更改后,单击“确定”保存更改并返回“安全检查”表。如果需要,您可以继续配置其他安全检查。单击“确定”保存在“安全检查”部分所做的所有更改,然后单击“保存并关闭”以关闭“安全检查”窗格。

使用 GUI 配置字段格式放宽规则

  1. 导航到应用程序防火墙 > 配置文件,选中目标配置文件,然后单击编辑

  2. 在“高级设置”窗格中,单击“放宽规则”。放松规则表中有一个“字段格式”条目。您可以双击,或者选择此行并单击“编辑”按钮,以访问“字段格式放宽规则”对话框。您可以对放松规则执行“添加”、“编辑”、“删除”、“用”或“禁用”操作。

要查看所有放松规则的合并视图,可以突出显示“字段格式”行并单击“可视化工具”。已部署放宽的可视化工具为您提供了 添加 新规则或 编辑 现有规则的选项。您还可以通过选择节点并单击放宽可视化工具中的相应按钮来启用或禁用一组规则。

在字段格式检查中使用学习功能

启用 learn 操作后,Web App Firewall 学习引擎会监视流量并了解触发的违规。您可以定期检查这些学习的规则。经过适当考虑后,您可以将学到的规则部署为字段格式放宽规则。

字段格式学习增强—在 11.0 版中引入了 Web App Firewall 学习增强功能。在以前的版本中,一旦部署了学习到的字段格式建议,Web App Firewall 学习引擎就会停止监视有效请求,以便根据新的数据点推荐新规则。这限制了已配置的安全保护,因为学习数据库不包括在安全检查处理的有效请求中看到的新数据的任何表示形式。

违规行为不再与学习相结合。无论违规情况如何,学习引擎都会学习字段格式并提出建议。除了检查被阻止的请求以确定当前的字段格式是否过于严格,是否需要放宽之外,学习引擎还会监视允许的请求,以确定当前的字段格式是否过于宽松,并允许通过部署更严格的规则来提高安全性。

以下是字段格式学习行为的摘要:

未绑定任何字段格式-在这种情况下,行为保持不变。所有学习数据都发送到 aslearn 引擎。学习引擎根据数据集建议字段格式规则。

字段格式是绑定的:在以前的版本中,只有在出现违规的情况下,观察到的数据才会发送到 aslearn 引擎。学习引擎根据数据集建议字段格式规则。在 11.0 版本中,即使没有触发任何违规行为,所有数据也会发送到 aslearn 引擎。学习引擎根据所有收到的输入的整个数据集建议字段格式规则。

增强学习的用例:

如果初始字段格式学习规则基于少量数据样本,则一些非典型值可能会导致建议对目标字段过于宽松。持续的学习使得 Web App Firewall 能够观察来自每个请求的数据点,为所学建议收集代表性样本。这有助于进一步加强安全性,以部署具有足够范围值的最佳输入格式。

字段格式规则

字段格式学习利用字段类型的优先级以及以下学习阈值的配置设置:

  • FieldFormatMinThreshold - 在生成学习放松之前必须观察特定表单字段的最小次数。默认值:1。
  • FieldFormatPercentThreshold - 生成学习放松之前,表单字段与特定字段类型匹配的次数百分比。默认值:0。

字段格式规则建议基于以下标准:

  • 字段类型建议-字段类型建议由现有字段类型的分配优先级和指定的字段格式阈值确定。优先级决定字段类型与输入的匹配顺序。较小的数字表示较高的优先级。例如,字段类型整数具有更高的优先级 (30),因此在字段类型 alphanum (50) 之前进行评估。阈值决定了为收集数据点的代表性样本而评估的输入数量。为配置的字段类型分配正确的优先级,并为 fieldFormatPercentThresholdfieldFormatMinThreshold 参数配置适当的 learningsetting 值,对于获得正确的字段格式建议至关重要。根据配置的阈值,优先级最高的字段类型首先与输入进行匹配。如果有匹配项,则建议使用此字段类型,而不考虑其他字段类型。例如,如果所有输入仅包含数字,则三种默认字段类型(整数、字母和任意)将匹配。但是,建议使用整数,因为它的优先级最高。
  • 最小和最大长度建议-字段格式的最小长度和最大长度的计算与字段类型的确定无关。字段格式长度的计算基于所有观测输入的平均长度。建议将计算出的平均值的一半作为最小值,建议将该平均值的两倍作为最大值。最小长度的范围是 0-65535,最大长度的范围是 1-65535。最小长度的配置值不能超过最大长度。
  • 空格字符的处理-检查字段格式长度时,字段格式检查会计算每个空格字符。在输入处理过程中,不会去除前导空格或结尾空格,并且输入字符串中间的多个连续空格不再合并为单个空格。

说明字段格式建议的示例:

Total requests: 100
Number of Req with Field Type:
Int : 22            (22 int values) – 22%
Alpha : 44                  (44 alpha values) – 44%
Alphanum: 14            (14 + 44 + 22 = 80 alphanum values) = 80%
noHTML: 10              (80 + 10 = 90 noHTML values) = 90%
any : 10                     (90 + 10 = 100 any values) = 100%

% threshold                              Suggested Field Type
0-22                int
23-44               alpha
45-80               alphanum
81-90               noHTML
91-100              any
<!--NeedCopy-->

使用命令行界面查看或使用学习的数据

show appfw learningdata <profilename> FieldFormat
rm appfw learningdata <profilename> -fieldFormat <string>  <formActionURL>
export appfw learningdata <profilename> FieldFormat
<!--NeedCopy-->

使用 GUI 查看或使用学习的数据

  1. 导航到应用程序防火墙 > 配置文件,选中目标配置文件,然后单击编辑

  2. 在“高级设置”窗格中,单击“学习规则”。您可以在“学习规则”表中选择“字段格式”条目,然后双击该条目以访问已学习的规则。您可以先部署学习的规则或编辑规则,然后再将其部署为放宽规则。要放弃规则,可以选择该规则,然后单击“跳过”按钮。一次只能编辑一条规则,但可以选择要部署或跳过的多个规则。

    您还可以选择在“学习规则”表中选择“字段格式”条目,然后单击 Visualizer 以获得所有已知违规行为的合并视图,从而显示所学到的放松的摘要视图。可视化工具使管理学习到的规则变得非常容易。它可以在一个屏幕上显示数据的全面视图,并且只需单击一下即可对一组规则执行操作。可视化工具的最大优点是它推荐正则表达式来整合多个规则。您可以根据分隔符和操作 URL 选择这些规则的子集。通过从下拉列表中选择数字,可以在可视化工具中显示 25、50 或 75 条规则。学习规则的可视化工具提供了编辑规则并将其作为放松部署的选项。或者您可以跳过规则来忽略它们。

使用日志功能进行字段格式检查

启用日志操作后,违反字段格式安全检查的行为将在审核日志中记录为 APPFW_FIELDFORMAT 违规。Web App Firewall 支持本机和 CEF 日志格式。您还可以将日志发送到远程 syslog 服务器。

使用命令行访问日志消息

切换到 shell 并跟踪 /var/log/ 文件夹中的 ns.logs 以访问与字段格式违规行为有关的日志消息:

  • Shell
  • tail -f /var/log/ns.log | grep APPFW_FIELDFORMAT

使用 GUI 访问日志消息

GUI 包含一个非常有用的工具(Syslog 查看器),用于分析日志消息。您可以通过多种方式访问 Syslog 查看器:

  • 导航到 应用程序防火墙 > 配置文件,选择目标配置文件,然后单击 安全检查。突出显示“字段格式”行,然后单击“日志”。当您直接从配置文件的 Fi eld Formats 安全 检查访问日志时,它会过滤掉日志消息,仅显示与这些安全检查违规有关的日志。

  • 您还可以通过导航到 NetScaler > 系统 >审核来访问系统日志查看器。在“审核消息”部分,单击 Syslog 消息链接以显示 Syslog 查看器,该查看器显示所有日志消息,包括其他安全检查违规日志。这对于在请求处理过程中可能触发多个安全检查冲突时进行调试非常有用。

  • 导航到 应用程序防火墙 > 策略 > 审核。在“审核消息”部分,单击 Syslog 消息链接以显示 Syslog 查看器,该查看器显示所有日志消息,包括其他安全检查违规日志。

    基于 HTML 的 Syslog 查看器提供了各种筛选选项,用于仅选择您感兴趣的日志消息。要访问字段格式安全检查违规日志消息,请在模块的下拉选项中选择 APPFW 进行过滤。“事件类型”会显示丰富的选项集,以进一步优化您的选择。例如,如果选中 APPFW_FIELDFORMAT 复选框并单击“应用”按钮,则只有与字段格式安全检查违规相关的日志消息会显示在 Syslog 查看器中。

如果将光标置于特定日志消息的行中,则日志消息下方会出现多个选项,例如模块和事件类型。您可以选择这些选项中的任何一个来突出显示日志中的相应信息。

请求未被阻止时的本机格式日志消息示例

Jun 10 22:32:26 <local0.info> 10.217.31.98 06/10/2015:22:32:26 GMT ns 0-PPE-0 :
default APPFW APPFW_FIELDFORMAT 97 0 :  10.217.253.62 562-PPE0
x1MV+YnNGzQFM3Bsy2wti4bhXio0001 pr_ffc http://aaron.stratum8.net/FFC/login_post.php
Field format check failed for field passwd="65568888sz-*_" <not blocked>
Example of a CEF format log message when the request is blocked
Jun 11 00:03:51 <local0.info> 10.217.31.98
CEF:0|Citrix|NetScaler|NS11.0|APPFW|APPFW_FIELDFORMAT|6|src=10.217.253.62 spt=27076
method=POST requet=http://aaron.stratum8.net/FFC/maxlen_post.php msg=Field format check
failed for field text_area="" cn1=108 cn2=644 cs1=pr_ffc cs2=PPE0
cs3=GaUROfl1Nx1jJTvja5twH5BBqI0000 cs4=ALERT cs5=2015 act=blocked
<!--NeedCopy-->

字段格式违规的统计数据

启用统计操作后,当 Web App Firewall 对此安全检查采取任何操作时,字段格式检查的相应计数器会增加。这些统计数据是针对流量、冲突和日志的速率和总计数收集的。日志计数器的增量可能因配置的设置而异。例如,如果启用了屏蔽操作,则对包含 3 个字段格式违规行为的页面的请求会使统计计数器增加 1,因为一旦检测到第一个 Field Formats 违规行为,该页面就会被屏蔽。但是,如果禁用了阻止,则处理相同的请求会使违规统计计数器和日志增加 3,因为每个 Field Formats 违规都会生成一条单独的日志消息。

使用命令行显示字段格式统计信息

在命令提示符下,键入:

sh appfw stats

要显示特定配置文件的统计信息,请使用以下命令:

stat appfw profile <profile name>

使用 GUI 显示字段格式统计信息

  1. 导航到“系统”>“安全”>“应用程序防火墙”。
  2. 在右窗格中,访问 统计信息 链接。
  3. 使用滚动条查看有关字段格式违规和日志的统计信息。统计表提供实时数据,每 7 秒更新一次。

部署提示

  • 启用字段格式操作日志、学习和统计数据。
  • 在对您的应用程序的流量进行代表性样本运行后,查看所学到的建议。
  • 如果大多数学习的规则都推荐使用字段类型,请将该字段类型配置为默认字段类型。对于最小和最大长度,请使用这些规则建议的最大范围。
  • 为不同字段类型或不同最小/最大长度更适合的其他字段部署规则。
  • 启用阻塞和禁用学习。
  • 监视统计数据和日志。如果仍有大量违规被触发,则可能需要查看日志消息,以确认违规行为代表必须被阻止的恶意请求。如果有效的请求被标记为违规,则可以编辑配置的字段格式规则以进一步放宽该规则,也可以重新启用 learning 以获得基于新数据点的建议。

注意: 您可以通过获取新的学习建议来微调配置。

重要内容

请注意有关字段格式安全性检查的以下几点:

  • 保护—通过配置最佳字段格式规则,可以防范多种攻击。例如,如果您指定某个字段只能包含整数,则黑客将无法使用此字段发起 SQL 注入或跨站脚本攻击,因为启动此类攻击所需的输入将不符合配置的字段格式要求。
  • 性能-您可以限制字段格式规则中输入的最小和最大允许长度。这可以防止恶意用户输入过大的输入字符串以试图增加服务器的处理开销,或者更糟糕的是,由于堆栈溢出,导致服务器转储核心。通过限制输入大小,您可以缩短处理合法请求所需的时间。
  • 配置字段格式-必须启用其中一项操作(阻止、记录、统计、学习)才能启用字段格式保护。您还可以指定字段格式规则以识别表单字段中允许的输入。
  • 选择角色地图对比字段类型-字符映射和字段类型都使用正则表达式。但是,字符映射通过缩小允许的字符列表来提供更具体的表达式。例如,对于诸如 janedoe@citrix.com 这样的输入,学习引擎可能会推荐字段类型 nohtml,但建议使用字符映射 [.@-Za-z] 可能更具体,因为它缩小了允许的非 alpha 字符集。“字符映射”选项除了字母字符外,只允许两个非字母字符:句号 (.) 和位于 (@)。
  • 持续学习— Web App Firewall 会监视并考虑所有传入的数据(违规行为和允许的输入),以生成用于推荐规则的学习表。随着新的传入数据的到来,规则会进行修订和更新。即使字段已经有绑定字段格式规则,也建议为该字段设置新的字段格式规则。如果配置的字段格式过于严格,并且阻塞了有效请求,则可以部署更宽松的字段格式。同样,如果当前的字段格式过于通用,则可以通过部署更严格的字段格式来进一步完善和加强安全性。
  • 覆盖规则-如果已经为字段/URL 组合部署了规则,则 GUI 允许用户更新字段格式。将出现一个对话框要求确认以替换现有规则。如果您使用的是命令行界面,则必须显式解除先前的绑定,然后绑定新规则。
  • 多重匹配—如果多个字段格式与给定的字段名称及其操作 URL 相匹配,则 Web App Firewall 会任意选择其中一种进行应用。
  • 缓冲区边界—如果字段值跨越多个流式传输缓冲区,并且字段值的这两个部分的格式不同,则与“any”对应的字段格式将发送到 learn 数据库。
  • 字段格式对比字段一致性检查-字段格式检查和字段一致性检查都是基于表单的保护检查。字段格式校验提供的保护类型与表单字段一致性检查不同。表单字段一致性检查可验证用户返回的 Web 表单的结构是否完好无损、HTML 中配置的数据格式限制是否得到遵守以及隐藏字段中的数据未被修改。除了从 Web 表单本身获得的内容外,它可以在不了解您的 Web 表单的任何具体知识的情况下完成此操作。字段格式检查可验证每个表单字段中的数据是否与您手动配置的特定格式限制相匹配,或者学习功能是否已生成并得到您的批准。换句话说,表单字段一致性检查强制执行一般的 Web 表单安全性,而字段格式检查强制执行 Web 表单允许输入的特定规则。
字段格式检查