CORS从http重定向到https

时间:2019-02-27 09:59:30

标签: nginx redirect cors

刚刚发现,当您从服务器向CORS请求返回301重定向状态时,浏览器将随后的“ Origin”标头设置为“ null” 。显然这是出于隐私原因,但是我只是在我的Nginx服务器中从http引用到https!哦,好..你能做什么。

在我的https的nginx配置中,在添加我的CORS标头之前,我正在检查$ http_origin。由于浏览器将该死的Origin标头设置为“ null”,因此标头未添加到响应中。

反正还是存在这个问题,或者我被迫确保我的Origin客户端仅发送https请求?

希望这个问题不太广泛。

1 个答案:

答案 0 :(得分:1)

协议方案是定义Origin的元素之一,因此http://x.com是与https://x.com不同的origin

在CORS中,重定向后,浏览器发送Origin: null,这是设计使然。

要解决此问题,您有两种选择:

  1. 允许Origin: null,但请确保您理解其中的含义,因为这实际上意味着您允许所有来源。
  2. 向重定向URL添加一些证明,这是来自服务器的有效URL。只有服务器才能生成的一些秘密。如果存在Origin:null,则只有在这是一个有效的机密时才允许使用它。