Обработка изменений свойства SameSite в файлах cookie в браузере Chrome
Что такое SameSite?
SameSite
— это свойство, которое можно задать в файлах cookie HTTP для предотвращения атак с подделкой межсайтовых запросов (CSRF) в веб-приложениях
- Если параметр
SameSite
имеет значение Нестрого, файл cookie отправляется в запросах на том же сайте и в запросах GET от других сайтов. Он не отправляется в запросах GET между доменами. - Значение Строго гарантирует, что файл cookie отправляется в запросах только в пределах того же сайта.
По умолчанию значение SameSite
НЕ задано в браузерах, поэтому нет никаких ограничений на отправку файлов cookie в запросах. Приложению нужно будет присоединиться к защите CSRF, задав значение Нестрого или Строго в соответствии с требованиями.
Изменения SameSite и влияние на проверку подлинности
Последние обновления стандартов в SameSite предлагают защиту приложений, представляя поведение по умолчанию, SameSite
если значение не задано как "Нестрого". Это устранение рисков означает, что файлы cookie будут ограничены HTTP-запросами, за исключением когда GET выполнено с других сайтов. Кроме того, для удаления ограничений на отправляемые файлы cookie введено значение None. Эти обновления вскоре появятся в следующей версии браузера Chrome.
Когда веб-приложения проходят проверку подлинности с помощью платформа удостоверений Майкрософт с помощью режима ответа "form_post", сервер входа отвечает приложению с помощью HTTP POST для отправки маркеров или кода проверки подлинности. Так как этот запрос является междоменным запросом (от login.microsoftonline.com
к вашему домену, например, https://contoso.com/auth
), файлы cookie, заданные приложением, теперь будут находиться под новыми правилами в Chrome. Файлы cookie, которые необходимо использовать в сценариях с несколькими узлами, — это файлы cookie, содержащие значения state и nonce, которые также отправляются в запросе на вход. Существуют другие файлы cookie, отброшенные идентификатором Microsoft Entra для хранения сеанса.
Если вы не обновите ваши веб-приложения, это новое поведение приведет к сбоям проверки подлинности.
Устранение рисков и примеры
Чтобы преодолеть ошибки проверки подлинности, веб-приложения, прошедшие проверку подлинности на Платформе удостоверений Microsoft, могут задать свойству SameSite
значение None
для файлов cookie, которые используются в междоменных сценариях при запуске в браузере Chrome.
Другие браузеры (см. здесь полный список) следуют предыдущему поведению SameSite
и не включают файлы cookie, если задан SameSite=None
.
Поэтому для поддержки проверки подлинности в нескольких браузерах веб-приложения необходимо установить значение SameSite
для None
только в браузере Chrome и оставить значение пустым в других браузерах.
Этот подход показан в следующем примере кода.
В следующей таблице представлены запросы на вытягивание, которые работали над изменениями SameSite в наших ASP.NET и ASP.NET Основных примерах.
Дополнительные сведения о том, как обрабатывать файлы cookie SameSite в ASP.NET и ASP.NET Core, см. также:
Следующие шаги
Дополнительные сведения о SameSite и сценарии веб-приложения: