Чтение файлов cookie с параметром «Samesite = None; Secure» из iframe в Safari 13 - PullRequest
5 голосов
/ 15 января 2020

У меня есть iframe, где я использую аутентификацию cook ie. Приготовление ie обычно устанавливается на моем домене, когда пользователи входят в систему. Я использую SameSite = None; Безопасный. Проблема в том, что когда сторонний веб-сайт встраивает iframe из моего домена, мой аутентификационный повар ie не передается, поэтому iframe не может аутентифицировать пользователя.

Это отлично работает в Chrome и Firefox , но не работает в Safari (и раньше он работал примерно до месяца go)

Мне известно об ошибке Webkit с SameSite = None, которая якобы была исправлена ​​в Safari 13. Я знаю, что Safari больше не разрешает фрейм-фреймам устанавливать сторонние файлы cookie (так было годами, поэтому я не понимаю, как это может быть связано с этим недавним изменением). Однако я не пытаюсь установить повара ie - я просто хочу это прочитать. До недавнего времени это было возможно (см. этот вопрос SO ).

До Safari 13 существовал обходной путь, позволяющий пользователям устанавливать сторонние файлы cookie, перенаправляя верхнюю страницу на страницу Cook. ie - установка домена и затем возврат на исходную страницу. В этом случае iframe сможет видеть повара ie (потому что снова, iframe не может писать, но может читать куки.

Я попытался установить вторичного повара ie без атрибута SameSite , так как они должны были работать, но все еще не отправляются.

Safari теперь полностью удаляет куки независимо от того, установлен SameSite или нет? Если так, почему они потрудились исправить ошибку SameSite? Что-то не добавляется.

Обновление: похоже, оно связано с Apple ITP 2, которая устанавливает строгие стандарты для сторонних файлов cookie и даже проводит различие между доменами на основе того, какие домены, по их мнению, могут выполнять плохое отслеживание: https://www.seerinteractive.com/blog/what-is-intelligent-tracking-prevention/

Итак, из того, что я собирал, кажется, что это не способ обойти ситуацию.

Обновление 2: я думаю, что я мог найти надежное решение в API доступа к хранилищу Webkit: https://webkit.org/blog/8124/introducing-storage-access-api/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...