CSRF表单标记检查
跨站请求伪造(CSRF)表单标记检查将受保护网站发送给用户的每个Web表单使用唯一且不可预测的FormID标记,然后检查用户返回的Web表单以确保提供的FormID是正确的。此检查可防止跨站点请求伪造攻击。此检查仅适用于包含网页表单的HTML请求,包含或不包含数据。它不适用于XML请求。
CSRF表单标记检查可防止攻击者使用自己的Web表单向受保护的网站发送带有数据的大量表单响应。与深入分析Web表单的某些其他安全检查相比,此检查所需的CPU处理能力相对较少。因此,它能够处理大量攻击,而不会严重降低受保护网站或Web应用防火墙本身的性能。
在启用CSRF表单标记检查之前,您必须注意以下几点:
- 您需要启用表单标记。CSRF 检查取决于表单标记,没有它不起作用。
- 对于包含受该配置文件保护的表单的所有网页,必须禁用Citrix ADC集成缓存功能。集成缓存功能和CSRF表单标记不兼容。
- 你必须考虑启用推荐人检查。引用检查是“开始 URL”检查的一部分,但它可以防止跨站点请求伪造,而不是“开始 URL”冲突。与 CSRF 表单标记检查相比,引用检查还会给 CPU 带来更少的负载。如果请求冲突了 Referer 检查,它会立即被阻止,因此不会调用 CSRF 表单标记检查。
- CSRF表单标记检查不适用于在表单源URL和表单操作URL中使用不同域的Web表单。例如,csrf表单标记不能保护具有表单源url
http://www.example.com
和http://www.example.org/form
.pl的表单操作的Web URL表单,因为example.com和example.org是不同的域。
如果您使用向导或GUI,则在“修改CSRF表单标记复选”对话框中的“常规”选项卡上,您可以启用或禁用“阻止”,“日志”,“学习”和“统计”操作。
如果使用命令行界面,则可以输入以下命令来配置CSRF表单标记检查:
设置appfw概要文件<名称> -CSRFtagAction[* *屏蔽* *][* *记录* *][* *学习* *][* *数据* *][* *不* *]
若要指定CSRF表单标记检查的放宽,您必须使用gui。在“修改CSRF表单标记复选”对话框的“检查“选项卡上,单击“添加“以打开“添加CSRF表单标记检查扩展”对话框,或选择现有的扩展,然后单击“打开“以打开“修改CSRF表单标记检查扩展”对话框。任何一个对话框都提供了用于配置放宽的相同选项。
当您将Citrix Web应用防火墙会话限制设置为0或更低值时,系统会生成警报,因为此类设置会影响需要正常运行的Web应用防火墙会话的高级保护检查功能。
以下是CSRF表单标记检查放宽的示例:
注意:以下表达式是可在"表单源url "和"表单操作url "角色中使用的url表达式。
选择以查询
http://www.example.com/search.pl?
后包含任何字符串开头的url,新查询除外:^ http://www[][]例子com/search [] pl ? [^ ?] * $ < !——NeedCopy >
选择以路径
http://www.example-espanol.com
和文件名开头的URL,这些路径和文件名由路径中的大写字母和小写字母,数字,非ASCII特殊字符和所选符号组成。n字符和任何其他特殊字符表示为编码的utf - 8字符串,其中包含分配给utf - 8字符集中每个特殊字符的十六进制代码:
^ http://www [] example-espa \ xC3 \ xB1ol [,] com/ (x [0-9A-Fa-f] ([0-9A-Za-z] | \ [0-9A-Fa-f]) ([0-9A-Za-z_ -] | \ x [0-9A-Fa-f] [0-9A-Fa-f ])\*/)\*([ 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]) *(。)(asp php | | htp |年代html ?) $ < !——NeedCopy >
- 选择包含字符串/搜索.cgi的所有URL?:
^[^?<>]\*/ 搜索(。)cgi ? [^ ?< >] \ * $ < !——NeedCopy >
重要
正则表达式非常强大。如果您不完全熟悉pcre格式的正则表达式,请仔细检查您编写的任何正则表达式。确保他们准确地定义了要添加为例外的url,而不是别的。粗心地使用通配符,尤其是点星号(. *)元字符/通配符组合,可能会产生您不希望的结果,例如阻止访问您不打算阻止的网络内容,或允许检查会阻止的攻击。
提示
启用“开始URL操作“下启用了enableValidate反向链接标头时,请确保反向链接标头的URL也添加到StartURL中。
注意
当Citrix ADC达到应用程序的限制并启用CSRF检查时,Web应用程序将无响应。
要防止网页应用程序冻结,请使用以下命令减少会话超时并增加会话限制:
来自CLI:> set appfw settings -sessiontimeout 300 From shell: root@ns# nsapimgr_wr.sh -s appfw_session_limit=200000在达到appfw_session_limit时记录并生成SNMP警报可帮助您解决问题和调试问题。