登录
首页 >  文章 >  前端

是的,在 Firefox 50 之前,`referrerpolicy="same-origin"` 是无效的。该属性在 Firefox 50 及以上版本中才被支持。在更早的版本中,浏览器可能忽略该属性,导致实际的 Referer 策略由其他因素决定,例如默认的 `no-referrer-when-downgrade` 或 `origin` 等。

时间:2026-04-07 12:15:02 375浏览 收藏

Firefox 50 是 referrerpolicy 属性(尤其是 same-origin 策略)的关键分水岭:此前版本因解析器完全不识别该属性,所有相关声明均被忽略,请求默认回退至 no-referrer-when-downgrade;自2016年8月发布的Firefox 50起才真正支持该属性及其完整语义,而若需兼容更早版本(如企业环境中的Firefox

referrerpolicy="same-origin"在Firefox 50前是否无效?

referrerpolicy="same-origin" 在 Firefox 50 之前确实无效 —— 它根本不会被识别,浏览器会退回到默认策略 no-referrer-when-downgrade

Firefox 对 referrerpolicy 属性的支持起始版本

Firefox 直到 50 版本(2016 年 8 月发布)才开始支持 referrerpolicy 属性。在此之前:

  • 所有 HTML 元素上的 referrerpolicy 属性会被完全忽略
  • 即使写成 ,也等同于没写
  • 实际生效的仍是全局默认行为:HTTPS → HTTP 降级时清空 Referer;同协议请求则发送完整 URL

为什么 same-origin 策略在旧版 Firefox 中无法落地

关键原因不是策略逻辑不支持,而是底层解析机制缺失:

  • Firefox 49 及更早版本的 HTML 解析器根本不认识 referrerpolicy 这个属性名
  • 没有对应的 DOM 接口(如 HTMLImageElement.referrerPolicy)供 JS 读取或设置
  • 网络层(Necko)未接入策略路由逻辑,请求发出前不检查该属性
  • 这意味着你无法通过 JS 动态设置、也无法靠它做跨域资源隔离

兼容旧版 Firefox 的替代方案

如果你必须支持 Firefox referrerpolicy 属性,得换思路:

  • —— 这个 meta 标签从 Firefox 36 就已支持,作用于整个页面所有子资源请求
  • 服务端统一加响应头:Referrer-Policy: same-origin —— 所有现代 Firefox(含 40+)都遵守该响应头
  • 避免在敏感链接或图片上暴露 origin 信息:手动截断 URL(如用 /api/xxx 代替 /api/xxx?token=abc),不把敏感参数塞进路径

注意:即使你用了 或响应头,Firefox 49 仍不支持 strict-originorigin-when-cross-origin 这类精细策略 —— 它只认 no-referrersame-originoriginno-referrer-when-downgrade 这四种。

以上就是《是的,在 Firefox 50 之前,`referrerpolicy="same-origin"` 是无效的。该属性在 Firefox 50 及以上版本中才被支持。在更早的版本中,浏览器可能忽略该属性,导致实际的 Referer 策略由其他因素决定,例如默认的 `no-referrer-when-downgrade` 或 `origin` 等。》的详细内容,更多关于常见HTML属性兼容性问题有哪些的资料请关注golang学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>