Пропустить и перейти к основному содержимому
УЖЕ ДОСТУПНО

Обработка файлов cookie SameSite и исправление .NET Framework 4.7.2 — Служба приложений Azure

Дата публикации: 18 января, 2020

В рамках обновления Службы приложений Azure в январе 2020 г. устанавливаются исправления для .NET Framework, которые изменят способ работы приложений платформы .NET Framework со свойством SameSite для файлов cookie. Служба также развертывает поведение совместимости Службы приложений, которое применяется ко всем запущенным в Службе приложений приложениям и для сценариев, в которых для параметра файлов cookie свойства SameSite задано значение "None" (Нет).

Версии .NET Core на платформе Службы приложений уже содержат обновления для обработки файлов cookie в SameSite и не изменяются в рамках обновления службы за январь 2020 г.

Полезная нагрузка Службы приложений Azure будет развернута в течение января 2020 года. Ориентировочный срок завершения — конец января 2020 года в общедоступном облаке Azure, во всех средах Службы приложений и национальных облаках.  Просмотреть последние сведения о развертывании.

Так как обновления развертываются в службе постепенно, приложения начинают работать, используя новую полезную нагрузку Службы приложений в разное время периода развертывания.  Разработчики могут определить, работают ли приложения на обновленной полезной нагрузке, проверив версию Службы приложений на сайте диспетчера служб. На сайт диспетчера служб можно перейти, выбрав параметры Средства разработки --> Дополнительные инструменты.  В качестве альтернативы разработчики могут перейти непосредственно на сайт диспетчера служб для приложения, используя следующий формат URL-адреса: https://your-sitename-here.scm.azurewebsites.net.

На сайтах Службы приложений Windows версию Службы приложений Azure можно увидеть на домашней странице сайта диспетчера служб.  Если версия — 86.0.7.148 (или более поздняя), то связанное приложение будет выполняться в обновленной версии Службы приложений.

Для сайтов Службы приложений Linux при выборе параметра Среда в верхнем меню сайта диспетчера служб отобразится страница со всеми переменными среды сайта. Полученная страница будет иметь URL-адрес, отформатированный следующим образом: https://имя-вашего-сайта.scm.azurewebsites.net/Env.  Переменная среды PLATFORM_VERSION отображает текущую версию Службы приложений.  Если версия — 86.0.7.148 (или более поздняя), то связанное приложение будет выполняться в обновленной версии Службы приложений.

Сведения об исправлениях .NET Framework для SameSite

Конкретные сведения о различиях в обработке файлов cookie в SameSite, включенных в исправление .NET Framework 4.7.2, описаны в этой статье

После установки исправления .NET Framework изменяет значения по умолчанию свойства конфигурации cookieSameSite для Состояния сеанса и Проверки подлинности форм на "Lax" (Нестрогий).   .NET Framework также автоматически отправляет свойство файлов cookie SameSite=None по сети, когда для параметра HttpCookie.SameSite задано значение "None" (Нет).

Дополнительные сведения об обработке файлов cookie в SameSite с помощью .NET Framework см. в этой статье, а также в нашей документации.

Дополнительные сведения о проверке подлинности с помощью форм cookieSameSite по умолчанию см. в этой статье

Дополнительные сведения о состоянии сеанса cookieSameSite по умолчанию см. в этой статье.

Дополнительные сведения об обработке файлов cookie SameSite с помощью .NET Core см. в этой статье

Сведения о поведении совместимости Службы приложений Azure

В дополнение к исправлению для .NET Framework, Служба приложений Azure предоставила поведение совместимости для сценария, когда ответ HTTP/HTTPS включает заголовок файлов cookie со свойством SameSite, установленным на значение "None" (Нет), а агент запрашивающего пользователя входит в определенное подмножество старых браузеров, которые не поддерживают новый стандарт SameSite 2019 и поэтому не распознают свойство SameSite в значении "None" (Нет).  При обнаружении более старой версии браузера Служба приложений Azure автоматически удаляет свойство cookie SameSite=None, если оно обнаружено в заголовках ответа.

Результатом совместимости Службы приложений является то, что определенное подмножество старых браузеров не будет получать нераспознанное значение SameSite (что может привести к возвращению старых браузеров к поведению SameSite=Strict), в то время как более современные браузеры, такие как Chrome v80, получат свойство cookie SameSite=None.

Специальная логика обнаружения, используемая Службой приложений для принятия решения об удалении свойства SameSite=None из ответа, следует за псевдологикой, описанной в этой статье.

Разработчики должны проверить использование и зависимость приложений (если имеется) в свойстве cookie SameSite, а также обновить логику приложения с помощью обнаружения агента пользователя и специальной обработки в соответствии со сценарием для каждого приложения. Поведение платформы Службы приложений в отношении совместимости предназначено только для частичного устранения рисков и помощи разработчикам, в то время как приложения обновляются для обработки поведения SameSite 2019, реализованного в более новых версиях браузера.

Разработчикам также следует просмотреть дополнительные требования к браузеру, когда cookies включают свойство SameSite=None. Например, Chrome v80 принимает SameSite=None, только если файлы cookie также отмечены атрибутом Безопасный, и файлы cookie передаются через HTTPS-подключение. См. дополнительные сведения.  

Поведение совместимости Службы приложений Azure реализовано в инфраструктуре граничной области сети Службы приложений. Поведение активно для всех сайтов, работающих в Службе приложений, независимо от используемых языка или платформы. Функция совместимости работает для сайтов, выполняющихся как в вариантах Службы приложений для Linux, так и в Windows, в Средах службы приложений, а также для всех развертываний Службы приложений Azure в национальных облаках.

 

  • Служба приложений
  • Services

Связанные продукты