Web App Firewall 配置文件设置
以下是必须在设备上配置的配置文件设置。
在命令提示符下,键入:
add appfw profile <name> [-invalidPercentHandling <invalidPercentHandling>] [-checkRequestHeaders ( ON | OFF )] [-URLDecodeRequestCookies ( ON | OFF )] [-optimizePartialReqs ( ON | OFF )] [-errorURL <expression>] [-logEveryPolicyHit ( ON | OFF )] [-stripHtmlComments <stripHtmlComments>] [-stripXmlComments ( none | all )] [-postBodyLimitSignature <positive_integer>][-fileUploadMaxNum <positive_integer>][-canonicalizeHTMLResponse ( ON | OFF )][-percentDecodeRecursively ( ON | OFF )] [-multipleHeaderAction <multipleHeaderAction> ...][-inspectContentTypes <inspectContentTypes> ...][-semicolonFieldSeparator ( ON | OFF )] [-fieldScan ( ON | OFF )] [-fieldScanLimit <positive_integer>] [-JSONFieldScan ( ON | OFF )] [-JSONFieldScanLimit <positive_integer>] [-messageScan ( ON | OFF )] [-messageScanLimit <positive_integer>] [-JSONMessageScan ( ON | OFF )] [-JSONMessageScanLimit
<positive_integer>] [-messageScanLimitContentTypes <messageScanLimitContentTypes> ]
<!--NeedCopy-->
invalidPercentHandling - 配置处理百分比编码的名称和值的方法。
asp_mode-去除并解析用于解析的无效百分比。
示例:- curl –v “http://<vip>/forms/login.html?field=sel%zzect -> Invalid percent encoded char(%zz)
被剥离,其余内容将被检查,并为 SQLinjection 检查采取措施。
secure_mode-我们检测到无效的百分比编码值并将其忽略。
示例:- 检测到 curl –v “http://<vip>/forms/login.html?field=sel%zzect -> Invalid percent encoded char(%zz)
,计数器增加,内容按原样传递给服务器。
apache_mode-此模式的工作方式类似于安全模式。
注意:
从版本 13.1 版本 45.x 开始,
apache_mode
函数已过时。
可能的值:apache_mode、asp_mode、secure_mode
默认值:安全模式
示例:
add appfw profile profile1 [-invalidPercentHandling secure_mode] [-checkRequestHeaders ON] [-URLDecodeRequestCookies OFF] [-optimizePartialReqs OFF]
optimizePartialReqs ——当关闭/打开(没有安全对象)时,NetScaler 设备会向后端服务器发送部分请求。此部分响应已发送回客户端。配置安全对象时,optimizePartialReqs 很有意义。设备在关闭时从服务器发送完全响应请求,开启时仅请求部分响应。
ON -客户端的部分请求会导致对后端服务器的部分请求。 OFF-客户端的部分请求更改为对后端服务器的完整请求。
可能的值:开、关 默认值:开
URLDecodeRequestCookies。启用 checkRequestHeaders
后,将检查 cookie 以进行安全检查(SQL、跨站点、cmd 注入)。如果启用了 URLDecodeRequestCookies
,则对 cookie 进行 URL 解码,然后进行检查。
可能的值:开、关 默认值:关
签名邮政正文限制(字节)。限制位置指定为“HTTP_POST_BODY”的签名所检查的请求负载(以字节为单位)。
默认值:8096 最小值:0 最大值:4294967295
帖子正文限制(字节)。限制 Web App Firewall检查的请求负载(以字节为单位)。
默认值:20 万 最小值:0 最大值:10 GB
有关安全设置及其 GUI 过程的详细信息,请参阅配置 Web App Firewall 配置文件主题。
postBodyLimitAction。当您指定允许的 HTTP 正文的最大大小时,PostBodyLimit 将遵循错误设置。 要遵守错误设置,您必须配置一个或多个“帖子正文限制”操作。该配置也适用于传输编码标头被分块的请求。
set appfw profile <profile_name> -PostBodyLimitAction block log stats
其中, 阻止 - 此操作阻止违反安全检查的连接,并且它基于所配置的 HTTP 主体的最大大小(后体限制)。您必须始终启用该选项。
日志-记录此安全检查的冲突情况。
统计信息-为此安全检查生成统计信息。
注意:
帖子正文限制操作的日志格式现在已更改为遵循标 准审核日志记录格式,例如:
ns.log.4.gz:Jun 25 1.1.1.1. <local0.info> 10.101.10.100 06/25/2020:10:10:28 GMT 0-PPE-0 : default APPFW APPFW_POSTBODYLIMIT 1506 0 : <Netscaler IP> 4234-PPE0 - testprof ><URL> Request post body length(<Post Body Length>) exceeds post body limit.
inspectQueryContentTypes 检查针对以下内容类型的注入 SQL 和跨站点脚本的请求查询和 Web 表单。
set appfw profile p1 -inspectQueryContentTypes HTML XML JSON OTHER
可能的值:HTML、XML、JSON、其他
默认情况下,对于基本和高级 appfw 配置文件,此参数设置为“InspectQueryContentTypes:HTML JSON OTER”。
以 XML 格式检查查询内容类型的示例:
> set appfw profile p1 -type XML
Warning: HTML, JSON checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action” will not be applicable when profile type is not HTML or JSON respectively.
<!--NeedCopy-->
以 HTML 格式检查查询内容类型的示例:
> set appfw profile p1 -type HTML
Warning: XML, JSON checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action” will not be applicable when profile type is not XML or JSON respectively
Done
<!--NeedCopy-->
以 JSON 格式检查查询内容类型的示例:
> set appfw profile p1 -type JSON
Warning: HTML, XML checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action will not be applicable when profile type is not HTML or XML respectively
Done
<!--NeedCopy-->
errorURL 表达式。NetScaler Web App Firewall 用作错误 URL 的 URL。最大长度:2047。
注意:
为了阻止请求的 URL 中的违规,如果错误 URL 类似于签名 URL,设备将重置连接。
logEveryPolicyHit -记录每个配置文件匹配项,无论安全检查结果如何。 可能的值:ON、OFF。 默认值:OFF。
stripXmlComments - 在转发受保护网站为响应用户请求而发送的网页之前,先删除 XML 注释。 可能的值:无、全部、exclude_script_tag。 默认值:无
postBodyLimitSignature - 签名中位置 HTTP_POST_BODY 的签名检查所允许的 HTTP 帖子正文大小的最大值,以字节为单位。 值的变化可能会影响 CPU 和延迟配置文件。 默认值:2048。 最小值:0 最大值:4294967295
fileUploadMaxNum -每个表单提交请求允许的最大文件上载次数。最大设置 (65535) 允许无限数量的上载。 默认值:65535 最小值:0 最大值:65535
fieldScan - 检查 HTML 请求中每个字段值的配置限制。
fieldScanLimit -输入 Web App Firewall 在 HTML 请求中检查每个字段值的字节数。
Default Value: 2 KB
Maximum Limit - 8 KB
JSONFieldScan - 检查 JSON 请求中每个字段值的配置限制。
JSONFieldScanLimit -输入 Web App Firewall 在 JSON 请求中检查每个字段值的字节数。
Default Value: 2 KB
Maximum Limit - 8 KB
messageScan - 检查 HTML 请求中每个有效负载的配置限制。
messageScanLimit -输入 Web App Firewall 在 HTML 请求中检查每个有效负载的字节数。
Default Value: 1 MB
Maximum Limit - 8 MB
JSONMessageScan - 检查 JSON 请求中每个有效负载的配置限制。
JSONMessageScanLimit -输入 Web App Firewall 在 JSON 请求中检查每个负载的字节数。
Default Value: 1 MB
Maximum Limit - 8 MB
messageScanLimitContentTypes — 选择以下任一选项:
- Form-Data – Select to inspect the payload for the HTML requests.
- Json - Select to inspect the payload for the JSON requests.
canonicalizeHTMLResponse -对受保护网站发送的响应中的任何特殊字符执行 HTML 实体编码。 可能的值:开、关 默认值:开
percentDecodeRecursively - 配置应用程序防火墙是否应使用百分比递归解码。 可能的值:开、关 默认值:开
multipleHeaderAction -一个或多个多个标头操作。可用设置功能如下:
- 阻止。阻止具有多个标头的连接。
- 日志。记录具有多个标头的连接。
- KeepLast。当存在多个标题时,只保留最后一个标题。
inspectContentTypes — 一个或多个 InspectContentType 列表。
- 应用程序/x-www-form-urlencoded
- multipart/form-data
- text/x-gwt-rpc
可能的值:无、应用程序 /x-www 表单 urlencoded、多部分/表单数据、text/x-gwt-rpc
semicolonFieldSeparator -允许 ‘;’ 作为 URL 查询和 POST 表单正文中的表单域分隔符。 可能的值:开、关 默认值:关