Мне нужна помощь в понимании случая, который я не могу найти, описанного в найденном материале, описывающем новые ограничения SameSite для Chrome. В настоящее время у меня есть случай, когда у меня есть сайт, который делает межсайтовые запросы к API. API отвечает заголовками CORS. Подробности:
Site: https://a.a.com
API: https://b.a.com
--API response headers
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://a.a.com
--cookie previously set with
Set-Cookie: value=somevalue; Path=/; Expires=<some time/date>; HttpOnly
Я не ожидаю, что заголовки CORS повлияют на что-либо (исходя из всего, что я видел, оно никогда не упоминает об изменениях SameSite), но я в любом случае помещаю их здесь. Учитывая этот сценарий и когда я установлю флаги на:
chrome://flags/#same-site-by-default-cookies
chrome://flags/#cookies-without-same-site-must-be-secure
, я ожидаю, что браузер заблокирует отправку значения cook ie. Это потому, что я ожидал, что повар ie будет обрабатываться так, как если бы он имел SameSite = Lax, и что это межсайтовые запросы. Это не то, что на самом деле происходит, и повар ie успешно отправлен. При тестировании этого я также пытался подождать 3 минуты между любыми запросами и запросом POST, чтобы избежать смягчения «Lax + POST», поскольку мы устанавливаем значение cook ie (с обновленным сроком действия) для каждого ответа. Исходя из того, что я читаю об изменениях, я не понимаю, почему отправка этого сообщения ie не блокируется браузером и почему эти запросы выполняются успешно.
Чтобы сделать вещи более запутанными, мы имеем некоторые случаи во время разработки по следующему сценарию:
Site: http://localhost
API: https://a.b.com
--API response headers
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost
--cookie previously set with
Set-Cookie: value=somevalue; Path=/; Expires=<some time/date>; HttpOnly
В отличие от первого описанного сценария, эти запросы фактически блокируют отправку повара ie ожидаемым образом (только при включенных новых флагах chrome). Предупреждающее сообщение, которое выдает браузер, относится к флагам SameSite и Secure, как и следовало ожидать.
Может кто-нибудь помочь мне понять, почему первый сценарий работает, а второй - нет? Я обеспокоен тем, что это работает на самом деле ошибка, и это не должно быть. Если это так, то, возможно, в будущем, без предупреждения, go из «работает» в «не работает».
Подробная информация о Chrome изменениях / флагах, которые я нашел, находится здесь: