ADC

强制执行 HTTP RFC 合规性

NetScaler Web App Firewall 检查传入流量是否符合 HTTP RFC 合规性,并删除默认情况下存在 RFC 违规的任何请求。但是,在某些情况下,设备可能必须绕过或阻止非 RFC 合规性请求。在这种情况下,您可以将设备配置为在全局或配置文件级别绕过或阻止此类请求。

在全球层面阻止或绕过不符合 RFC 标准的请求

如果请求不完整且 WAF 无法处理此类请求,则 HTTP 模块将其标识为无效。例如,缺少主机标头的 传入 HTTP 请求。 要阻止或绕过此类无效请求,必须在应用程序防火墙全局设置中配置该 malformedReqAction 选项。

“malformedReqAction”参数验证传入请求的内容长度无效、分块请求无效、没有 HTTP 版本和标头不完整。

注意:

如果禁用 malformedReqAction 参数中的阻止选项,设备将绕过所有非 RFC 合规性请求的整个应用防火墙处理,并将请求转发到下一个模块。

使用命令行界面阻止或绕过无效的非 RFC 投诉 HTTP 请求

要阻止或绕过无效的请求,请输入以下命令:

set appfw settings -malformedreqaction <action>

示例:

set appfw settings –malformedReqAction block

显示格式错误的请求操作设置

要显示格式错误的请求操作设置,请输入以下命令:

show appfw settings

输出:

DefaultProfile:  APPFW_BYPASS UndefAction:  APPFW_BLOCK SessionTimeout:  900     LearnRateLimit:  400     SessionLifetime:  0 SessionCookieName:  citrix_ns_id ImportSizeLimit:  134217728 SignatureAutoUpdate:  OFF SignatureUrl:"https://s3.amazonaws.com/NSAppFwSignatures/SignaturesMapping.xml" CookiePostEncryptPrefix:  ENC GeoLocationLogging:  OFF CEFLogging:  OFF       EntityDecoding:  OFF     UseConfigurableSecretKey:  OFF SessionLimit:  100000    MalformedReqAction:  block log stats
 Done
<!--NeedCopy-->

使用 NetScaler GUI 阻止或绕过无效的非 RFC 投诉 HTTP 请求

  1. 导航到“安全”>“NetScaler Web App Firewall”。
  2. NetScaler Web App Firewall 页面中,单击 设置下的更改引擎设置
  3. 在“配置 NetScaler Web App Firewall 设置”页面中,选择“记录格式错误的请求”选项作为阻止、日志或统计信息。
  4. 单击“确定”和“关闭”。

注意:

如果取消选择阻止操作或者没有选择任何格式错误的请求操作,设备将绕过请求而不会胁迫用户。

在配置文件级别阻止或绕过不符合 RFC 要求

其他不符合 RFC 的请求可以配置为在配置文件级别阻止或绕过。您必须在阻止或旁路模式下配置 RFC 配置文件。通过执行此配置,与 Web App Firewall 配置文件匹配的任何无效流量都将被绕过或相应地阻止。RFC 配置文件验证以下安全检查:

  • 无效的 GWT-RPC 请求
  • 无效的内容类型标题
  • 无效的多部分请求
  • 无效的 JSON 请求
  • 重复的 cookie 名称值对检查

注意:

在“绕过”模式下设置 RFC 配置文件时,必须确保禁用 HTML 跨站点脚本设置HTML SQL 注入设置部分中的转换选项。如果在旁路模式下启用和设置 RFC 配置文件,设备将显示一条警告消息:“转换跨站点脚本”和“转换 SQL 特殊字符”当前都处于打开状态。建议与使用 APPFW_RFC_BYPASS 时将其关闭。

重要:

此外,设备还会显示警告说明:“启用 Appfw 安全检查可能不适用于设置此配置文件时违反 RFC 检查的请求。建议不要启用任何转换设置,因为可能会部分转换包含 RFC 违规的请求。“

使用命令行界面在 Web App Firewall 配置文件中配置 RFC 配置文件

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

set appfw profile <profile_name> -rfcprofile <rfcprofile_name

示例

set appfw profile P1 -rfcprofile APPFW_RFC_BLOCK

注意:

默认情况下,RFC 配置文件在阻止模式下绑定到 Web App Firewall 配置文件。

使用 GUI 在 Web App Firewall 配置文件中配置 RFC 配置文件

  1. 导航到“安全”>“NetScaler Web App Firewall”>“配置文件”
  2. 在“ 置文件”页面中,选择一个配置文件,然后单击“编辑”。
  3. Web App Firewall 配置文件 页面中,单击 高级设置部分中的配置 文件设置。
  4. HTML 设置部分中,在 APPFW_RFC_BYPASS 模式下设置 RFC 配置文件。系统 会显示一条警告消息,“启用的 Appfw 安全检查可能不适用于在设置此配置文件时冲突 RFC 检查的请求。不建议启用任何转换设置,因为请求可能会被部分转换,包含 RFC 冲突”。
强制执行 HTTP RFC 合规性