在鼓励使用特殊字符的密码等字段的 REST API 中,避免 WAF 误报的最佳编码实践是啥
Posted
技术标签:
【中文标题】在鼓励使用特殊字符的密码等字段的 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在鼓励使用特殊字符的密码等字段的 REST API 中,避免 WAF 误报的最佳编码实践是什么 【发布时间】:2021-10-22 03:11:37 【问题描述】:我有一个使用 JSON 数据的 REST API。监控流量的 Web-Application-Firewall (WAF) 使用标准的 OWASP 规则。一条规则是阻止包含插入符号的密码。
例如leA^n12
我可以对密码进行 base64 编码,但我想知道是否有 JSON API 数据流经 WAF 的最佳实践?
【问题讨论】:
【参考方案1】: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
【讨论】:
以上是关于在鼓励使用特殊字符的密码等字段的 REST API 中,避免 WAF 误报的最佳编码实践是啥的主要内容,如果未能解决你的问题,请参考以下文章
django登录注册验证之密码包含特殊字符,确认密码一致实现
Azure DevOps REST API - 选项列表如何与字段关联?