bugs.webkit.org/show_bug.cgi?id=170714

но Safari 11 был выпущен на Mac OSX. Это обновление вызывает проблему с нашим веб-приложением в сочетании с XSRF в заголовке нашего запроса. Я постараюсь описать проблему логическим способом. Вот как должна выглядеть хорошая ситуация:

Когда пользователь хочет войти в систему, он получает ответ от сервера с файлом Set-Cookie, который содержит значение токена XSRF.Eg: Set-Cookie: XSRF-TOKEN=LKNBX4DZhL708KjXNkgXnlxTDCNuhsZG1kTc2SFy498; Path=/; Secure

Страница обновляется. Следующий вызов, который будет выполнен, содержит правильное значение XSRF в заголовке. На стороне сервера проверяется значение и т. Д. Каждый вызов внешнего интерфейса будет содержать этот токен XSRF.

Если пользователь выходит из системы и хочет войти снова, его файл cookie XSRF будет переопределен новым значением и сможет войти в систему с этим токеном.

Наша проблемная ситуация (в Safari 11 на Mac OSX другие браузеры не показывают такое поведение):

Если файлов cookie не существует, пользователь может войти в систему как обычно

Однако, если он хочет снова войти в систему (после предыдущего сеанса), обновление происходит. При первом вызове другое обновление XSRF-токен при его вызове не заменяется новым значением, они все еще содержат старый XSRF-токен из предыдущего сеанса. Когда мы проверяем этот запрос, мы видим, что куки-файлы по этому запросу содержат правильное значение, но заголовок отражает старый токен.

Этот вызов с неправильным заголовком вызывает закрытие сеанса в бэкэнде, и поэтому пользователь исключается из сеанса. TLDR; в Safari 11 заголовок XSRF-TOKEN не обновляется соответственно значению cookie после обновления. У нас это работает на старых версиях и в других браузерах, которые мы считаем ошибкой Safar 11.

Кто-нибудь еще испытывает подобные проблемы? Где значение заголовка запроса не обновляется после обновления страницы в Safari 11?

РЕДАКТИРОВАТЬ: После тестирования мы обнаружили, что размещение временной метки в URL в качестве параметра запроса заставляет Safari 11 отправлять правильный запрос. Кажется, что некоторые запросы кэшируются, а обновленные заголовки игнорируются.

Большое спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос