Печенье перекрестного происхождения на Safari - PullRequest
0 голосов
/ 05 февраля 2020

При изучении (только что выпущенных) изменений Chrome 80 cook ie (требуется SameSite = None для междоменных файлов cookie) я заметил странное поведение в одном из моих приложений. Конкретное приложение встроено в другой сайт - контент находится в www.domain1.com, но встроенное приложение аутентифицировано и загружается из www.domain2.com. В настоящее время мы используем аутентификацию на основе cook ie.

Потому что Из изменений Chrome 80 cook ie мы закончили тем, что добавили SameSite = None к нашим cookie-файлам, чтобы они могли использоваться для аутентификации и передачи в www.domain2.com, когда мы делали запросы через наш API. Это исправило ошибку Chrome 80, которую мы ожидали, но мы обнаружили, что Safari не будет работать ни в iOS (версии 12 и 13 были протестированы), ни в ОС Ma c (версии 10.15 и 10.15). Мы сузили проблему до значения по умолчанию в ОС iOS и Ma c - флажок «Запретить межсайтовое отслеживание» в настройках Safari. Когда этот флажок установлен, наши файлы cookie не переносятся из домена 1 в домен, даже если установлен параметр SameSite = None. Похоже, что это может вызвать проблемы для многих различных платформ, так как до недавнего времени большинство сайтов ожидали, что куки смогут передавать этот путь.

Это преднамеренное поведение, или мы что-то настроили неправильно ? Я читал о других приложениях, имеющих эту проблему, но не нашел никаких решений, кроме хаков, таких как перенаправление на страницу в domain2 до загрузки контента в domain1, что на самом деле не вариант для нас. Есть ли какой-то способ обойти это или способ исправить наши настройки, чтобы мы могли на самом деле передавать куки по мере необходимости?

Вот пример повара ie, который мы получаем от нашего API во время аутентификации:

"thirdPartyBlocked=1; expires=Tue, 09-Feb-2020 01:59:04 GMT; path=/{our app path}/; Secure; HttpOnly; SameSite=none"

Этот повар ie работает и переносится, как ожидается, во всех браузерах, кроме Safari. Есть ли способы решить эту проблему?

...