Citrix ADC

机密字段

您可以将 Web 表单字段指定为机密字段,以保护用户在其中键入的信息。通常,用户在其中一个受保护的 Web 服务器上在 Web 表单中键入的任何信息都会记录在 Citrix ADC 日志中。但是,在指定为机密的 Web 表单字段中键入的信息不会被记录。该信息仅在网站配置为保存此类数据的情况下才会保存,通常保存在安全的数据库中。

您可能希望使用机密字段名称保护的常见信息类型包括:

  • 密码
  • 信用卡号、验证码和有效期
  • 社会安全号码
  • 纳税身份证号
  • 家庭住址
  • 私人电话号码

除了良好做法之外,正确使用机密字段名称对于电子商务服务器上的 PCI-DSS 合规性、在美国管理医疗信息的服务器上遵守 HIPAA 以及遵守其他数据保护标准也是必要的。

重要

在以下两种情况下,“机密字段”名称无法按预期发挥作用:

  • 如果 Web 表单的机密字段或动作 URL 长度超过 256 个字符,则会在 Citrix ADC 日志中截断该字段或操作 URL。
  • 对于某些 SSL 事务,如果机密字段或操作 URL 长度超过 127 个字符,则日志将被截断。

在这两种情况下,Web App Firewall 都会使用字母“x”屏蔽一个 15 个字符的字符串,而不是通常的八个字符的字符串。为确保删除任何机密信息,用户必须使用与前 256 个或前 127 个字符(在使用 SSL 的情况下)匹配的表单域名称和操作 URL 表达式。

要将 Web App Firewall 配置为将受保护网站上的 Web 表单字段视为机密字段,请将该字段添加到“机密字段”列表中。您可以将字段名称输入为字符串,也可以输入与 PCRE 兼容的正则表达式来指定一个或多个字段。您可以在添加字段时启用机密字段标识,也可以稍后修改该指定。

注意

从版本 13.1 build 27.x 开始,WAF 配置文件中也支持机密字段。有关更多信息,请参阅 WAF 配置文件中的机密字段

使用命令行界面添加机密字段

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

  • add appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )] [-comment "<string>"] [-state ( ENABLED | DISABLED )]
  • save ns config

示例

以下示例将名称以 Password 开头的所有 Web 表单字段添加到机密字段列表中。

add appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -isRegex REGEX -state ENABLED
save ns config
<!--NeedCopy-->

使用命令行界面修改机密字段

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

  • set appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )][-comment "<string>"] [-state ( ENABLED | DISABLED )]
  • save ns config

示例

以下示例修改机密字段标识以添加注释。

set appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -comment "Protect password fields." -isRegex REGEX -state ENABLED
save ns config
<!--NeedCopy-->

使用命令行界面删除机密字段

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

  • rm appfw confidField <fieldName> <url>
  • save ns config

使用 GUI 配置机密字段

  1. 导航到 安全 > 应用程序防火墙
  2. 在详细信息窗格的“设置”下,单击“管理机密字段”。
  3. 在“管理机密字段”对话框中,执行以下操作之一:
    • 要向列表中添加新的表单域,请单击“添加”。
    • 要更改现有的机密字段标识,请选择该字段,然后单击“编辑”。 此时将显示 Web App Firewall 机密字段 对话框。

      注意

      如果选择现有的机密字段标识,然后单击“添加”,“创建机密表单域”对话框将显示该机密字段的信息。您可以修改该信息以创建新的机密字段。

  4. 在对话框中,填写元素。具体如下:
    • “已启用”复选框。选择或清除以启用/禁用此机密字段指定。
    • 表单域名是否为正则表达式复选框。选择或清除以在表单域名称中启用 PCRE 格式的正则表达式。
    • 字段名称。输入文字字符串或 PCRE 格式的正则表达式,该正则表达式要么代表特定字段名称,要么匹配名称遵循某种模式的多个字段。
    • 操作 URL。输入文字 URL 或正则表达式,用于定义包含机密字段的 Web 表单所在的网页的一个或多个 URL。
    • 评论。输入注释。可选。
  5. 单击 Create(创建)或 OK(确定)。
  6. 要从机密字段列表中删除机密字段标识,请选择要删除的机密字段列表,然后单击“删除”将其删除,然后单击“确定”以确认您的选择。
  7. 完成添加、修改和移除机密字段标识后,单击“关闭”。

示例

以下是一些定义表单域名称的正则表达式,您可能会发现这些正则表达式很有用:

  • ^passwd_ (Applies confidential-field status to all field names that begin with the “passwd_” string.)

  • ^((\[0-9a-zA-Z._-]*||\\x\[0-9A-Fa-f][0-9A-Fa-f])+-)?passwd_ (Applies confidential-field status to all field names that begin with the string passwd_, or that contain the string -passwd_ after another string that might contain non-ASCII special characters.)

以下是一些定义特定 URL 类型的正则表达式,您可能会发现这些正则表达式很有用。用您自己的虚拟主机和域名代替示例中的内容。

  • 如果 Web 表单出现在虚拟主机 www.example.com 的多个网页上,但所有这些网页都命名为 logon.pl?,则可以使用以下正则表达式:

     https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_.-]*/)*logon[.]pl?
     <!--NeedCopy-->
    
  • 如果 Web 表单出现在虚拟主机 www.example-español.com 的多个网页上,其中包含 n-tilde (ñ) 特殊字符,则可以使用以下正则表达式,该正则表达式将 n 波浪号特殊字符表示为包含 C3 B1(分配给该字符的十六进制代码)的编码 UTF-8 字符串UTF-8 字符集中的字符:

     https?://www[.]example-espa\xC3\xB1ol[.]com/([0-9A-Za-z][0-9A-Za-z_.-]\*/)\* logon[.]pl?
     <!--NeedCopy-->
    
  • 如果包含 query.pl 的 Web 表单出现在 example.com 域内不同主机的多个网页上,则可以使用以下正则表达式:

     https?://([0-9A-Za-z][0-9A-Za-z_-.]*[.])\*example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]\*/)*logon[.]pl?
     <!--NeedCopy-->
    
  • 如果包含 query.pl 的 Web 表单出现在不同域中不同主机的多个网页上,则可以使用以下正则表达式:

     https?://([0-9A-Za-z][0-9A-Za-z_-.]\*[.])\*[0-9A-Za-z][0-9A-Za-z_-.]+[.][a-z]{2,6}/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl?
     <!--NeedCopy-->
    
  • 如果 Web 表单出现在虚拟主机 www.example.com 的多个网页上,但所有这些网页都命名为 logon.pl?,则可以使用以下正则表达式:

     https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl?
     <!--NeedCopy-->
    
机密字段