回调域名校验与实际连接目标的差异
TOPIC SOURCE
授权测试 Webhook 回调地址:用受控接收端验证服务端请求伪造风险
回调地址通过域名校验,不等于实际连接目标也符合策略。校验可能发生在保存配置时,而请求在稍后的投递阶段才发出;服务端也可能先请求一个允许的地址,再跟随重定向访问另一个目标。因此,安全判断不能只看用户填写的域名,还要看每次投递最终连接到了哪里。
这一区别有两个关键边界。其一,保存时通过校验的配置,在实际投递前仍需按同一策略检查;域名形式符合要求,也不能替代对解析结果和实际连接目标的约束。其二,如果允许自动跟随重定向,每一跳都是新的请求目标,应重新校验;业务不需要跳转时,禁用自动跟随更直接。网络出站控制则提供独立约束,避免地址策略只停留在字符串判断上。
验证时,先明确产品策略和授权范围,再使用两个自有 HTTPS 接收端:允许的端点 A 用于正常投递,并按约定返回固定的 307 重定向;不在策略允许范围内的端点 B 只用于观察是否发生越界连接。直接配置 B 是否被拒,与通过 A 跳转后 B 是否收到请求,是两项不同的检查。测试不需要使用内网地址、云元数据服务或第三方主机。
即使 B 收到了请求,也不能仅凭接收端记录下结论。应以同一测试事件标识关联配置记录、接收端时间线和服务端投递日志,确认请求确由该次投递产生,并留意重试造成的重复记录。只有证据表明服务端实际访问了策略不允许的 B,才能判断地址策略在相应阶段失效;正常回调到达 A,本身只说明投递链路可用。

参与讨论
域名过了不等于请求就安全了