ADC

机密字段

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

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

  • 密码
  • 信用卡号码、验证码和到期日期
  • 社会保险号码
  • 税号编号
  • 家庭地址
  • 私人电话号码

除了良好做法之外,还需要正确使用机密字段指定,以便符合电子商务服务器上的 PCI-DSS 合规性、在美国管理医疗信息的服务器上的 HIPAA 合规性以及符合其他数据保护标准。

重要

在以下两种情况下,机密字段指定不能按预期运作:

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

在上述任何一种情况下,Web App Firewall 会使用字母“x”来掩盖十五个字符的字符串,而不是普通的八个字符串。要确保删除任何机密信息,用户必须使用与前 256 匹配的表单字段名称和操作 URL 表达式,或者(在使用 SSL 的情况下)使用前 127 个字符。

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

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

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

  • 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 主机和域名代替示例中的主机。

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

     https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_.-]*/)*logon[.]pl?
     <!--NeedCopy-->
    
  • 如果 Web 表单出现在 Web 主机上的多个网页上 www.example-español.com,其中包含 n-tilde (ñ) 特殊字符,则可以使用以下正则表达式,它将 n-tilde 特殊字符表示为包含 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 表单出现在 Web 主机上的多个网页上,www.example.com,但所有这些网页都命名为 logon.pl?,可以使用以下正则表达式:

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