在 REST API 中,在像密码这样的字段中,鼓励使用特殊字符的最佳编码实践是什么,以避免 WAF 误报

In a REST API on a field like a password where special characters are encouraged what is the best-practice for encoding to avoid WAF false-positives

我有一个使用 JSON 数据的 REST API。监控流量的 Web 应用程序防火墙 (WAF) 使用标准 OWASP 规则。一条规则是阻止带有脱字符的密码。

例如leA^n12

我可以对密码进行 base64 编码,但我想知道是否有 JSON API 数据流经 WAF 的最佳实践?

OWASP 规则集被设计为非常严格的开箱即用,并且可以进行调整以满足使用 WAF 的应用程序或组织的特定需求。创建排除项、自定义规则甚至禁用可能导致问题或误报的规则是完全正常的,而且在许多情况下实际上是意料之中的。

WAF 排除列表允许您从 WAF 评估中忽略某些请求属性。一个常见的例子是 Active Directory 插入的令牌,用于身份验证或密码字段。此类属性容易包含特殊字符,可能会触发 WAF 规则的误报。将属性添加到 WAF 排除列表后,任何已配置和活动的 WAF 规则都不会考虑该属性。排除列表在全球范围内。

您可以通过创建排除列表或禁用规则来修复误报。

参考https://docs.microsoft.com/en-us/azure/web-application-firewall/ag/application-gateway-waf-configuration#waf-exclusion-lists