区域拦截是访问控制中的一层,它的作用就是把明显的异常来源挡在业务逻辑之前。配置之前要先确定好目的:防刷、防恶意注册、减少无效流量的成本,不同的目的所对应的规则强度和动作也不一样。

选择可靠的字段作为判断依据。请求经过CDN或者反向代理之后,真实地址会保存在转发头里,取值顺序要和链路一致,直接从最后一段取用容易被伪造。IP归属地库按照国家、省、市三级进行匹配,再加上ASN和IDC网段一起判断,机房出口与住宅宽带的处理策略应该有所区别。
规则按照层次来排列,防止单个黑名单无限增长。第一层限定可以访问的省份范围,第二层对命中区域内的可疑网段进行限速,第三层对高频异常行为进行追加验证。动作上保留观察模式,先记录命中数量以及来源分布,确认误伤比例之后再进行拒绝。
放行清单为必选项。搜索引擎抓取、合作方回调、监控探针、内部办公出口等都需要固定放行,否则拦截上线就会造成收录下降或者接口中断。代理出口也要进行登记,防止同一地址段被多次错误判断。
上线节奏分为三个阶段。全量日志观察一周,核对命中条数和真实攻击特征;小比例样本切换拒绝,观察业务指标和用户反馈;确认无误之后全量生效。规则、IP 库要按月进行复核,代理和云主机地址段变化很快,长期不更新的库会一直扩大误伤范围。
最后补充一下具体的体验情况。被拦截的请求会返回一个明确的错误页面和联系方式,而不是一个空白的页面,这样方便正常的用户自己解决问题,也可以降低以后排查问题的沟通成本。