能否为Google Recaptcha创建SRI?相关技术疑问求证
Google Recaptcha 能否使用 SRI?
核心结论
- 前端加载的 Recaptcha 脚本无法可靠使用 SRI(子资源完整性)
- 你项目中后端调用
siteverify接口的场景,SRI 完全不适用,无需考虑
详细说明
前端脚本无法用 SRI 的原因
Google Recaptcha 的前端资源(比如 https://www.google.com/recaptcha/api.js)会根据请求的地区、版本动态返回内容,官方不会对外提供固定的脚本哈希值,也不保证脚本内容长期稳定。一旦 Google 更新 Recaptcha 版本,脚本哈希就会变化,预先配置的 SRI 会直接失效,导致资源加载失败。你查到的“因 Google 不告知 API 版本无法使用 SRI”的信息是准确的。
后端调用 siteverify 的安全重点
SRI 是浏览器用来验证前端静态资源(脚本、样式等)完整性的机制,和后端 HTTP 请求无关。你在过滤器里调用 siteverify 时,重点要做这些:
- 务必用 HTTPS 请求接口,Google 的接口本身就是 HTTPS,能防止请求被窃听或篡改
- 严格校验响应结果:确认
success字段为true,同时核对hostname、action等参数和前端提交的一致,避免恶意请求绕过验证
前端 Recaptcha 的替代安全方案
如果项目有前端加载 Recaptcha 的需求,不用纠结 SRI,可通过这些方式保障安全:
- 只从 Google 官方域名(
www.google.com或www.recaptcha.net)加载资源,别用第三方镜像 - 采用官方推荐的异步加载方式,确保资源加载过程不被篡改
- 若使用企业版 Recaptcha,开启官方提供的安全增强设置
内容的提问来源于stack exchange,提问作者darul360
相关产品推荐
相关产品推荐

