Safari ITP2 XHR с аккредитацией - PullRequest
0 голосов
/ 25 февраля 2019

мы используем сервис (например: user-service.com) с 5 сайтов (например: site1.com, site2.com, site3.com, site4.com, site5.com).

Сервис.com - это микро-сервис, который хранит некоторые пользовательские данные (например, комментарии, обзор, профиль, ...).

Файл cookie (только защищенный и защищенный) хранится в домене .user-service.com

Этот файл cookie используется в качестве идентификатора сеанса.С веб-сайтов (site1.com, ...) мы отправляем XHR-запрос на user-service.com.Для пересылки идентификатора сеанса мы используем опцию Credential XHR.

Он отлично работает во всех браузерах, кроме Safari 12. Когда пользователь просматривает более 4 веб-сайтов, cookie все еще устанавливается на .user-service.com, но даже еслиПри использовании опции Credential XHR cookie никогда не пересылается браузером.

Кажется, проблема возникла из ITP2.Решения, которые мы нашли:

  • используют API доступа к хранилищу: но UX очень и очень плохой

  • имеют псевдонимы пользовательского сервиса.com домен как user-service.site1.com, user-service.site2.com, ... и установить cookie после входа в систему на всех доменах: но что делать, если есть 100 веб-доменов?

  • не устанавливайте идентификатор сеанса как HttpOnly и перенаправляйте его вручную в запросе заголовка: это решение вводит уязвимость CSRF

Если у вас есть такая же проблема, любые другие сведения или решения,Я буду рад прочитать это.

...