授权地区浏览器测试中,脚本返回HTTP200,页面却一直没有进入预期就绪状态,控制台提示完整性不匹配。下载成功与允许执行是两项观察。换代理出口之前,应先确认HTML期待哪个发布版本的字节,以及浏览器实际收到哪些字节。本文提供受控测试方案,不宣称98IP实测结果。

可信发布指纹与两张下载脚本卡进入完整性检查点,匹配卡通向浏览器活动标记,改动卡被拦下

1. 先确认失败确实来自SRI

子资源完整性SRI允许页面通过integrity属性,为脚本或样式表声明加密摘要。资源未通过适用的完整性检查,就不能作为该资源使用。HTTP200只说明HTTP响应状态,不代表摘要校验成功,更不代表脚本已经执行。

保存实际脚本元素解析后的src、integrity、crossorigin设置、最终响应URL、状态、内容类型和对应控制台消息,同时记录HTML部署版本与资源发布标识。查询参数中的秘密应脱敏。封装程序统一报“代理脚本错误”,不足以证明哪个浏览器检查失败。

区分摘要不匹配、CSP拒绝、CORS失败、JavaScript MIME类型不正确、网络失败和开始执行后的运行时异常:这些都可能让就绪标记缺失。若控制台指向策略拒绝,应和站点管理者检查策略,另见CSP资源拦截排查指南。

2. 用独立发布产物比较正确字节

预期输入应是管理者审核通过的最终构建产物,已完成约定的压缩源码等构建转换。简单受控案例可只用一条由发布流程生成的SHA384完整性值;摘要是带算法前缀的Base64输出,不是把十六进制校验和粘在前缀后面。不要编造示例摘要,也不能仅凭长度判断有效。

比较时使用解除HTTP内容编码后的响应表示字节。gzip或Brotli线上压缩文件与解码后的脚本不是同一输入。不应转换换行、另存编码、格式化源码,或对开发者工具里复制的文本求摘要;这些操作可能改变正在调查的字节。如果捕获工具无法保留相应解码字节,应写明限制,而非断言一致。

从独立审核产物得到预期摘要,从观察到的解码响应得到诊断摘要,并分别保留来源。直接把可疑响应的新摘要填回HTML,只是更换了预期对象,不能证明收到的是批准发布版本。

3. 建立有效、改动、修正三个案例

  1. 使用自有HTTPS预发布页面和无害脚本,为每次运行设置可区分的新测试标记。不得触发真实广告、分析、结账或客户数据处理,先约定标记与发布标识。
  2. 有效例使用审核后的最终脚本及匹配元数据,先以同源资源隔离跨域配置。确认CSP允许该案例,脚本内容类型正确。
  3. 负例在另一份自有副本中只改变一个无害注释字节,保留有效例旧摘要;预期完整性拒绝且不出现新的执行标记,其余条件保持一致。
  4. 修正例作为管理者审核的新发布版本,脚本和HTML摘要配对,应出现自己的预期标记;改动副本负例仍须拒绝。
  5. 经批准基线及选定住宅路径分别运行三例,初始浏览器状态等价,记录实际出口,并在比较期间固定会话策略。
  6. 对齐控制台证据、最终资源字节、HTML元数据和新标记;每例清理或版本化标记,避免旧成功记录让被拦脚本看似已执行。

以上是预期,不是实测报告。没有授权基线应明确记录。人为修改案例证明测试能发现差异,并不能证明生产CDN或代理修改了文件。

4. 找到首次发布或交付分歧

  • 旧HTML在可变资源地址引用了新字节:检查部署顺序、HTML缓存和CDN资源替换,恢复管理者的匹配发布组合,宜按其不可变版本资源流程处理。
  • HTML版本正确但实收字节不同:核对最终URL、重定向、CDN部署及经批准的边缘转换。
  • 解码字节与审核产物相同仍失败:检查完整性值原文、算法和输出格式、资源适用条件及控制台CORS信息,不靠手工改字符串推断成功。
  • 只有一个地区异常:先保留该地区HTML与资源版本、缓存证据及部署标识,再归因出口。
  • 完整性通过但页面仍坏:另查运行时与应用就绪,SRI通过不证明业务正确或脚本安全。

浏览器缓存、Service Worker和CDN缓存可能给出不同发布组合。记录每次响应来自何处,以等价初始状态复现;不要不加说明地随意附加绕缓存参数,它可能改变路由或内容。普通未做TLS拦截的HTTPS代理无法修改目标加密脚本;经授权的TLS检查属于另一信任边界,必须记录。

5. 跨域资源同时满足安全条件

跨域SRI资源除了摘要,还须满足CORS。对于经批准的公开静态资源,适当的anonymous跨域请求及资源服务器对应授权是常见方案,但须由管理者核实实际请求模式和响应。摘要正确不能补上缺失的跨域权限。

不要盲目开放携带凭据的跨域权限、关闭证书校验、删integrity、关CSP或安装绕过安全检查扩展。批准资源变更后,应更新审核后的发布元数据,成对部署HTML与资源,并保留摘要不匹配负例,确保修复没有取消检查。

最小证据包括合成案例ID、脱敏元素属性、最终URL、发布ID、解码字节比较、控制台分类、缓存及Service Worker观察、新执行标记,不含Cookie、认证头或代理密码。截图可辅助,但不能替代字节来源。

6. 固定98IP地区路径并验收

授权网站测试需要住宅路径时,可查98IP动态住宅IP产品页与API配置文档,采用账户支持的接入方式及参数。先固定页面和产物预期,再逐一路径对照。

代理提供网络路径,不能修复过期发布元数据,也不保证浏览器执行、目标兼容性或地区结果。限制合成请求,核对账户实际用量并遵守站点授权;本文不承诺性能或计费结果。

  • 真实控制台失败已分为SRI、CORS、CSP、MIME、网络或运行时。
  • 预期来自独立审核最终产物,不来自可疑响应。
  • 摘要输入是未做文本归一化的解码表示字节。
  • 有效及修正例有新标记,改动负例仍被拒。
  • HTML、资源、缓存、Service Worker及地区版本证据对应。
  • 修复保留完整性和跨域安全控制。

HTTP200仍会拦脚本吗? 会,收到成功响应后仍可能完整性校验失败。

SRI失败证明代理改脚本吗? 不证明,要独立核对发布配对、交付版本与浏览器安全条件。

能直接用下载文件的新摘要替换HTML吗? 预期产物应由审核发布流程确定,单从可疑响应生成摘要不能验证来源。