You need to enable JavaScript to run this app. 如何让PageSpeed Insights正常访问带HTTP Basic Authentication的站点
优惠活动
大模型
产品
解决方案
定价
更多

如何让PageSpeed Insights正常访问带HTTP Basic Authentication的站点

PageSpeed Insights访问带HTTP Basic Authentication站点的报错修复

你当前写法失效的核心原因

  • 你采用的https://username:password@www.example.com格式的嵌凭证写法,在Lighthouse运行的Chromium环境中早已被安全策略禁用。从Chrome 90版本开始,浏览器会自动剥离所有导航请求URL中携带的Basic Auth信息,甚至直接拦截这类请求返回访问拒绝,根本不会携带凭证发起认证流程。哪怕同样的URL在curl命令下可以正常返回页面内容,在Chrome的页面加载规则里就是完全无效的,这就是你遇到net::ERR_ACCESS_DENIED报错的本质。
  • PageSpeed Insights的云端网关出于安全防护要求,会主动检测并清除请求链路中携带的明文凭据,你嵌在目标URL里的账号密码,在PSI把测试任务转发给Lighthouse之前就会被过滤掉,根本走不到实际的认证校验环节。

可落地的解决方法

  • 通过原生支持的自定义请求头传递认证信息
    Lighthouse的配置体系本身支持透传自定义请求头,PageSpeed Insights v5接口也开放了对应的_headers参数入口。你只需要把Basic Auth的凭证放到标准的Authorization请求头里传递,就能完全绕开Chrome对URL嵌凭证的限制,也不会被云端网关的安全规则过滤。
    具体调用格式参考:
https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://www.example.com&_headers={"Authorization":"Basic 经Base64编码的 用户名:密码 字符串"}

这里的Base64编码字符串和curl命令里-u参数自动生成的认证头内容完全一致,不需要额外调整格式。

  • 配置服务端IP白名单
    在站点的HTTP Basic Auth规则中,将PageSpeed Insights测试服务的固定出口IP段加入免认证白名单,来自测试服务的请求会直接跳过Basic Auth校验,无需额外传递凭证即可正常加载页面。
  • 临时放开认证完成快速测试
    如果只是单次生成性能报告的临时需求,可以在测试的短暂时段内关闭站点的Basic Auth防护,等报告生成后立刻恢复认证配置,注意不要长期开放无防护的站点访问。
  • 本地Lighthouse测试替代
    针对内网或者权限管控严格的站点,可以直接在本地运行Lighthouse CLI工具完成测试。本地运行时不会有云端网关的过滤规则限制,你可以自由配置请求头、模拟受限网络环境下的页面加载场景,完全不需要依赖线上的云端测试服务。

注意:不要再尝试把账号密码拼接到目标站点的URL路径里传递,这个写法从浏览器安全规则层面就已经失效,不管怎么调整拼接格式都无法正常通过认证。

内容的提问来源于stack exchange,提问作者Nagarajan Malaichamy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.13 13:15:04