现已推出

Azure 应用服务 - SameSite Cookie 处理和 .NET Framework 4.7.2 修补程序

更新时间:一月 22, 2020

作为 Azure 应用服务 2020 年 1 月更新的一部分,将安装 .NET Framework 修补程序,该程序可更新 .NET Framework 应用处理 SameSite Cookie 属性的方式。 如果 Cookie 已将 SameSite 属性设置为“None”,则该服务还将部署一个应用服务兼容性行为,该行为适用于应用服务上运行的所有应用程序。

应用服务平台上的 .NET Core 版本已包含对 SameSite Cookie 处理的更新,这些版本在 2020 年 1 月服务更新期间将保持不变。

整个 2020 年 1 月都将部署 Azure 应用服务有效负载,公共 Azure 云、所有应用服务环境和国家/地区云中的预计完成日期都是 2020 年 1 月末。 查看有关部署的最新信息

由于更新是跨服务以增量服务进行部署的,因此在部署期间,应用程序将于不同时间开始在较新的应用服务有效负载上运行。  开发人员可通过勾选 SCM 站点中的应用服务版本,决定应用程序是否要在更新后的应用服务有效负载上运行。可通过“开发工具”-->“高级工具”选项在门户中使用 SCM 站点。  或者,开发人员可采用以下 URL 格式直接导航到应用程序的 SCM 站点:https://your-sitename-here.scm.azurewebsites.net

对于 Windows 应用服务站点,SCM 站点的主页显示了 Azure 应用服务版本。  如果版本是 86.0.7.148(或更高版本),则关联的应用程序将在新修补的应用服务版本上运行

对于 Linux 应用服务站点,单击 SCM 站点顶部菜单中的“环境”选项将返回一个页面,上面显示了该站点的所有环境变量。 生成的页面将具有格式如下的 URL:https://your-sitename-here.scm.azurewebsites.net/Env。  PLATFORM_VERSION 环境变量显示了应用服务的当前版本。  如果版本是 86.0.7.148(或更高版本),则关联的应用程序将在新修补的应用服务版本上运行

适用于 SameSite 的 .NET Framework 修补程序详细信息

有关 .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 应用服务兼容性行为的详细信息

除了 .NET Framework 修补程序,Azure 应用服务还引入了一个兼容性行为,它适用于这样的情况:HTTP/HTTPS 响应包含 SameSite 属性设置为值“None”的 Cookie 标头,并且发出请求的用户代码与一部分不支持较新 2019 SameSite 标准的特定旧版浏览器相匹配,因此没法识别出 SameSite 属性为“None”。  检测到较旧版浏览器时,如果是在响应标头中检测到的,则 Azure 应用服务会自动删除 SameSite=None Cookie 属性。

应用服务兼容性行为带来的实际影响是,一部分特定旧版浏览器将不接收无法识别的 SameSite 值(这可能导致旧版浏览器恢复到 SameSite=Strict 行为),而 Chrome v80 等较新版浏览器将接收 SameSite=None Cookie 属性。

应用服务用来决定何时从响应中删除 SameSite=None 属性的特定检测逻辑遵守此文章中所述的伪逻辑。

开发人员应查看其应用程序对 SameSite Cookie 属性的使用情况和依赖性(若有),并在适当时针对每项应用程序的场景使用用户代理检测和特定处理来更新应用程序逻辑。应用服务平台的兼容性行为仅用作部分缓解措施,目的是当应用程序更新为处理在较新浏览器版本中实现的 2019 SameSite 行为时向开发人员提供帮助。

如果 Cookie 包含 SameSite=None 属性,则开发人员还应查看其他浏览器要求。例如,如果 Cookie 还标记有 Secure 属性且 Cookie 通过 HTTPS 连接传递,则 Chrome v80 将仅按照 SameSite=None 操作查看更多详细信息。  

Azure 应用服务兼容性行为是在应用服务网络边缘基础结构上实现的。 无论站点使用的语言或框架如何,都主动对应用服务上运行的所有站点执行此行为。兼容性功能适用于在应用服务的 Linux 和 Windows 变体上运行的站点、适用于应用服务环境,还适用于 Azure 应用服务的所有国家/地区云部署。

 

  • 应用服务
  • Services

Related Products