Citrix ADC

CSRF表单标签检查

跨站点请求伪造(CSRF)表单标记检查通过受保护的网站发送给用户的每个web表单都带有一个唯一的和不可预知的FormID,然后检查用户返回的web表单,以确保提供的FormID是正确的。此检查可防止跨站点请求伪造攻击。这种检查只适用于包含web表单的HTML请求,无论是否包含数据。它不适用于XML请求。

CSRF表单标签检查可以防止攻击者使用他们自己的web表单向受保护的网站发送大量带有数据的表单响应。与深入分析web表单的其他安全检查相比,这种检查所需的CPU处理能力相对较低。因此,它能够处理高容量的攻击,而不会严重降低受保护网站或Web应用防火墙本身的性能。

在启用CSRF表单标记检查之前,必须注意以下事项:

  • 您需要启用表单标记。CSRF检查依赖于表单标记,没有它就不能工作。
  • 对于包含受该配置文件保护的表单的所有网页,必须禁用Citrix ADC集成缓存功能。集成缓存特性和CSRF表单标记不兼容。
  • 您必须考虑启用Referer检查。引用检查是启动URL检查的一部分,但它防止跨站点请求伪造,而不是启动URL违规。引用检查比CSRF表单标记检查给CPU带来的负载更少。如果一个请求违反了Referer检查,它将立即被阻塞,因此不会调用CSRF Form Tagging检查。
  • CSRF表单标记检查不适用于在表单来源URL和表单动作URL中使用不同域的web表单。例如,CSRF表单标记无法保护表单源URL为的web表单http://www.example.com的表单动作URLhttp://www.example.org/form.pl,因为example.com和example.org是不同的域名。

如果使用向导或GUI,在“修改CSRF表单标记检查”对话框中的“常规”选项卡上,可以启用或禁用“阻止”、“记录”、“学习”和“统计”操作。

如果使用命令行界面,可以输入以下命令配置CSRF表单标记检查:

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

要为CSRF Form Tagging检查指定松弛,必须使用GUI。在“修改CSRF表单标记检查”对话框的“检查”选项卡上,单击“添加”打开“添加CSRF表单标记检查放松”对话框,或者选择一个已有的放松,单击“打开”打开“修改CSRF表单标记检查放松”对话框。两个对话框都提供了配置松弛的相同选项。

当您将Citrix Web App Firewall会话限制设置为0或更低的值时,将生成警报,因为这样的设置会影响高级保护检查功能,而这些功能需要正常运行的Web App Firewall会话。

以下是CSRF表单标签检查放松的例子:

请注意:下面的表达式是URL表达式,可以在Form Origin URL和Form Action URL角色中使用。

  • 选择以http://www.example.com/search.pl?并且在查询之后包含任何字符串,除了一个新的查询:

    ^ http://www[][]例子com/search [] pl ? [^ ?] * $ < !——NeedCopy >
  • 选择以。开头的urlhttp://www.example-espanol.com路径和文件名由大写字母和小写字母、数字、非ascii特殊字符和路径中的选定符号组成。ñ字符和任何其他特殊字符都表示为编码的UTF-8字符串,其中包含分配给UTF-8字符集中每个特殊字符的十六进制码:

^ http://www [] example-espa \ xC3 \ xB1ol [] com/ (((0-9A-Za-z) | \ \ x [0-9A-Fa-f] [0-9A-Fa-f]) x ([0-9A-Za-z_ -] | \ \ [0-9A-Fa-f] [0-9A-Fa-f]) * /) * (x [0-9A-Za-z] | \ \ [0-9A-Fa-f] [0-9A-Fa-f]) x ([0-9A-Za-z_ -] | \ \ [0-9A-Fa-f] [0-9A-Fa-f]) *(。)(asp php | | htp |年代html ?) $ < !——NeedCopy >
  • 选择包含字符串/search.cgi的所有url ?:
^(^ ? < >) * /搜索cgi \ [,] ? [^ ?< >] * $ < !——NeedCopy >

重要的

正则表达式功能强大。如果您不完全熟悉pcre格式的正则表达式,请仔细检查您编写的任何正则表达式。确保它们确切地定义了您想要添加为异常的URL,而不是其他的。不小心使用通配符,特别是使用点-星号(.*)元字符/通配符组合,可能会产生您不想要的结果,例如阻止访问您不打算阻止的web内容,或者允许检查本应阻止的攻击。

提示

当在StartURL Action下启用了enableValidate referrer header时,确保referrer header URL也被添加到StartURL中。

请注意

当Citrix ADC达到appfw_session_limit并且启用了CSRF检查时,web应用程序会冻结。

为了防止web应用冻结,可以使用以下命令减少会话超时时间并增加会话限制:

命令行:> set appfw settings -sessiontimeout 300命令行:root@ns# nsapimgr_wr.sh -s appfw_session_limit=200000

当达到appfw_session_limit时,记录并产生SNMP告警,有助于故障排除和调试问题。

CSRF表单标签检查