CORS перенаправить с http на https - PullRequest
0 голосов
/ 27 февраля 2019

Только что выяснилось, что когда вы возвращаете статус 301 Redirect с вашего сервера в запрос CORS, браузер устанавливает для последующего заголовка 'Origin' значение 'null' .Очевидно, это из соображений конфиденциальности, но я обращаюсь только от http к https на моем сервере nginx!Ну что ж .. что вы можете сделать.

В моей конфигурации nginx для https я проверяю $ http_origin перед добавлением моих заголовков CORS.Так как браузер установил проклятый заголовок Origin в 'null', заголовок не был добавлен к ответу.

Есть ли какая-либо проблема вокруг этой проблемы, или я вынужден просто убедиться, что мой клиент Origin отправляет толькоhttps запросы?

Надеюсь, вопрос не слишком широкий.

1 Ответ

0 голосов
/ 27 февраля 2019

Схема протокола является одним из элементов, определяющих Origin, поэтому http://x.com отличается от источника https://x.com

. В CORS после перенаправления браузер отправляет Origin: null, это сделано специально.

Чтобы преодолеть это, у вас есть два варианта:

  1. Разрешить Origin: null, но, пожалуйста, убедитесь, что вы понимаете последствия, поскольку на самом деле это означает, что вы допускаете все источники.
  2. Добавьте к URL-адресу перенаправления какое-либо доказательство того, что это действительный URL-адрес, полученный с вашего сервера.Какой-то секрет, который может генерировать только сервер.Когда присутствует Origin: null, разрешите его, только если это действительный секрет.
...