对于隐私敏感的上下文,是否有任何浏览器将原始标头设置为“null”?

时间:2014-03-14 05:42:31

标签: cors

Origin spec表示Origin标头可能设置为“null”。这通常在请求来自用户计算机上的文件而不是来自托管网页时完成。该规范还声明,如果请求来自“隐私敏感”上下文,则Origin可以为null。

我的问题:什么是“隐私敏感”环境,是否有任何浏览器表现出这种行为?

这是来自Origin spec的完整措辞:

  

每当用户代理发出来自的HTTP请求时   “隐私敏感”上下文,用户代理必须发送值“null”   在Origin标题字段中。

     

注意:本文档未定义隐私敏感的概念   上下文。生成HTTP请求的应用程序可以指定   作为隐私敏感的上下文对用户的方式施加限制   代理生成Origin头字段。

4 个答案:

答案 0 :(得分:44)

我终于找到了答案。至少还有一种情况是Origin标题可能为“null”。在CORS请求期间执行重定向时,如果请求被重定向到其他服务器上的URL,则Origin标头将更改为“null”。我认为这被认为是“隐私敏感的上下文”,因为浏览器不希望将原始资源泄漏到新服务器,因为客户端可能不打算首先向新服务器发出请求。 / p>

答案 1 :(得分:3)

点击此处:https://bugs.chromium.org/p/chromium/issues/detail?id=154967

通过strobe@google.com

  

此行为实际上在spec [1]中。 请参阅第7.1.7节   6。

不幸的是传输字符串" null"让它看起来像是一个bug;我自己这么想,直到我追踪到这一点:)

我们可能会更好地在检查员中解释这个问题:

http://www.w3.org/TR/cors/#generic-cross-origin-request-algorithms

答案 2 :(得分:1)

我有类似的情况,在域A-> B中进行ajax重定向,最后回到A.由于origin为null,CORS失败。

在域A上我设置了Access-Control-Allow-Origin:null,这似乎有用,需要测试更多。

答案 3 :(得分:1)

还有其他一些与相关的情况,它们可能导致null originhttps://webdbg.com/test/sandbox/frames.htm