Google Recaptcha v2 POST请求遭Azure WAF拦截,有无规避方案?
规避Azure WAF拦截Recaptcha v2验证请求的方案
以下是无需创建ARGS排除项的几种可行方法:
Base64编码传输令牌
前端获取到g-recaptcha-response的原始令牌后,先做Base64编码再发送POST请求。编码后的内容仅包含字母、数字、+、/、=这类安全字符,不会触发SQL特殊字符或注释的检测规则。后端收到请求后,先对该参数做Base64解码,再传给Google的Recaptcha验证接口即可。注意要统一编码解码的字符集(比如UTF-8),避免令牌解析错误。调整942430规则的特殊字符阈值
942430规则是检测参数中特殊字符数量是否超出限制(当前阈值是12)。你可以在Azure WAF策略的「SQL Injection Prevention Rules」规则组中找到这条规则,适当提高特殊字符的阈值(比如调整到20或30)。Recaptcha令牌的特殊字符数量通常在这个区间内,调整后既能避免误拦截,又不会削弱对其他参数的SQL注入防护能力。自定义WAF规则逻辑
在Azure WAF中创建自定义规则,针对表单提交路径下的g-recaptcha-response参数,将942430和942440规则的拦截级别从「Block」改为「Log」。这种方式既不会完全跳过规则检测,又能避免Recaptcha验证请求被误拦截,同时保留对其他请求和参数的防护。
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

