You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome 66中disown-opener等CSP指令不被识别,求替代方案

Chrome 66 CSP指令兼容问题的确认与替代方案

你完全没错,这确实是Chrome 66对W3C CSP标准的实现滞后导致的问题——你提到的这三个指令都属于CSP 3规范的内容,但Chrome 66版本还未完成对它们的支持。下面给你逐个说明对应的替代方案:

1. disown-opener 指令

这个指令的作用是切断当前页面与通过它打开的新窗口之间的opener关联,防止新窗口通过window.opener操作原页面。在Chrome 66中,你可以用两种方式替代:

  • 对于HTML标签(如<a>、<form>),直接添加rel="noopener noreferrer"属性;
  • 如果是通过JavaScript的window.open()打开窗口,在参数中指定noopener:
    window.open('https://example.com', '_blank', 'noopener')
    

2. reflected-xss 指令

该指令用于配置浏览器对反射型XSS的防护策略。Chrome 66不支持这个CSP指令,你可以改用**X-XSS-Protection响应头**来实现相同的防护效果,推荐设置:

X-XSS-Protection: 1; mode=block

这个响应头是浏览器原生的XSS防护机制,Chrome在很早的版本就已经支持,启用后会直接阻止疑似反射型XSS的页面加载。

3. referrer 指令

这个CSP指令用来控制页面发送的Referrer信息。Chrome 66不支持它,替代方案是使用独立的**Referrer-Policy响应头**,根据你的需求选择合适的取值,比如:

  • 跨域时仅发送源信息:Referrer-Policy: strict-origin-when-cross-origin
  • 完全不发送Referrer:Referrer-Policy: no-referrer
  • 仅同源时发送完整Referrer:Referrer-Policy: same-origin

另外补充一句:如果后续能升级Chrome到70及以上版本,这些CSP 3指令就会被原生支持了。当前版本下,上面的替代方案是最可靠的兼容方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:43:14