跳至主要內容
現已提供

Azure App Service - SameSite Cookie 處理和 .NET Framework 4.7.2 修補程式

發佈日期: 一月 18, 2020

在 2020 年 1 月的 Azure App Service 更新中,已安裝 .NET Framework 修補程式,該修補程式會更新 .NET Framework 應用程式處理 SameSite Cookie 屬性的方式。 針對 Cookie 已將 SameSite 屬性設為 "None" 的情況,此服務也會部署在 App Service 中執行之所有應用程式所適用的 App Service 相容性行為。

App Service 平台上的 .NET Core 版本已含有 SameSite Cookie 處理的更新,因此不會隨著 2020 年 1 月的服務更新而變更。

2020 年 1 月期間,我們會在公用 Azure 雲端、所有 App Service 環境和國家雲端間部署 Azure App Service 承載,預計於 2020 年 1 月底完成。 查看部署的最新資訊

由於更新會在各服務間累加式部署,因此部署期間應用程式開始在新版 App Service 承載上執行的時間不一。  開發人員可以檢查 SCM 網站中的 App Service 版本,以判斷應用程式是否正在更新的 App Service 承載上執行。您可以透過入口網站的 [開發工具] > [進階工具] 選項,前往 SCM 網站。  或者,開發人員可以使用下列 URL 格式,直接瀏覽至應用程式的 SCM 網站:https://此處為您的網站名稱.scm.azurewebsites.net。

若是 Windows App Service 網站,SCM 網站首頁會顯示 Azure App Service 的版本。  如果版本為 86.0.7.148 (或更新版本),則表示相關應用程式已在新修補的 App Service 版本上執行。

若是 Linux App Service 網站,按一下 SCM 網站頂端功能表的 [環境] 選項,即會傳回含網站所有環境變數的頁面。 產生的頁面 URL 格式為 https://此處為您的網站名稱.scm.azurewebsites.net/Env。  PLATFORM_VERSION 環境變數會顯示目前的 App Service 版本。  如果版本為 86.0.7.148 (或更新版本),則表示相關應用程式已在新修補的 App Service 版本上執行。

.NET Framework 的 SameSite 修補程式詳細資料

如需 .NET Framework 4.7.2 修補程式中所含 SameSite Cookie 處理差異的特定詳細資料,請參閱這篇文章。 

安裝 .NET Framework 修補程式之後,.NET Framework 會將 [工作階段狀態] 和 [表單驗證]cookieSameSite 設定屬性預設變更為 "Lax"。   當 HttpCookie.SameSite 的值已設為 "None" 時,.NET Framework 也會自動在網路上傳送 SameSite=None Cookie 屬性。

若要了解 .NET Framework SameSite Cookie 處理的其他相關資訊,請參閱這篇文章文件

若要深入了解表單驗證的 cookieSameSite 預設,請參閱這篇文章。 

若要深入了解工作階段狀態的 cookieSameSite 預設,請參閱這篇文章

若要了解 .NET Core SameSite Cookie 處理的其他相關資訊,請參閱這篇文章。 

Azure App Service 相容性行為的詳細資料

除了 .NET Framework 修補程式以外,Azure App Service 也針對下列情況推出了相容性行為:HTTP/HTTPS 回應包含 SameSite 屬性值設定為 "None" 的 Cookie 標頭,以及提出要求的使用者代理程式符合特定一部分不支援新版 2019 年 SameSite 標準的舊版瀏覽器,故無法辨識 SameSite 的 "None" 屬性。  當偵測到舊版瀏覽器時,如果在回應標頭中偵測到 SameSite=None Cookie 屬性,則 Azure App Service 會自動移除此屬性。

App Service 相容性行為的實質效果是,特定一部分的舊版瀏覽器不會收到無法辨識的 SameSite 值 (這可能會導致舊版瀏覽器還原為 SameSite=Strict 行為),而 Chrome v80 等新版瀏覽器則會接收 SameSite=None Cookie 屬性。

App Service 用來決定何時從回應中移除 SameSite=None 屬性的特定偵測邏輯,是以這篇文章所述的虛擬邏輯為依據。

開發人員應該檢閱 SameSite Cookie 屬性上應用程式的使用方式和依賴程度 (如果有),並根據每個應用程式的情況,使用適當的使用者代理程式偵測和特殊處理來更新應用程式邏輯。App Service 平台的相容性行為只是部分緩和措施,目的是在更新應用程式以處理新版瀏覽器中實作的 2019 年 SameSite 行為時,協助開發人員。

當 Cookie 包含 SameSite=None 屬性時,開發人員也應該檢閱其他瀏覽器需求。例如,如果 Cookie 也標示 Secure 屬性,則 Chrome v80 只會採用 SameSite=None,且 Cookie 會流經 HTTPS 連線。查看詳細資料。  

Azure App Service 相容性行為會實作於 App Service 網路邊緣基礎結構上。 不論網站所使用的語言或架構為何,此行為在 App Service 上執行的所有網站都有效。相容性功能適用於在 Linux 和 Windows 版 App Service 中執行的網站、App Service 環境,以及 Azure App Service 的所有國家雲端部署。

 

  • App Service
  • Services

相關產品