【发布时间】:2019-11-30 15:02:11
【问题描述】:
最近 samesite=lax 自动添加到我的会话 cookie 中!
这个属性只是添加到 sessionID:
"Set-Cookie ASP.NET_SessionId=zana3mklplqwewhwvika2125; path=/; HttpOnly; **SameSite=Lax**"
我的网站托管在 IIS 8.5、Windows 2012 R2 上,没有 WAF 或 UrlRewrite,我关闭了 AntiVirus (kasper)。
但在某些客户服务器上仍有同样的问题。
有什么想法吗?
已编辑: 我发现这个: https://support.microsoft.com/en-us/help/4524419/kb4524419
现在,当 HttpCookie.SameSite 值为“无”时,ASP.NET 将发出 SameSite cookie 标头,以适应 Chrome 中即将对 SameSite cookie 处理进行的更改。作为此更改的一部分,FormsAuth 和 SessionState cookie 也将使用 SameSite = 'Lax' 而不是之前的默认值 'None' 发出,尽管这些值可以在 web.config 中覆盖。
如何在 web.config 中覆盖 SessionState 的同站点 cookie?
我添加了这一行,但它不适用于 SessionID cookie!
<httpCookies sameSite="Unspecified" />
通过SessionState标签的“cookieSameSite”属性为状态服务器设置samesite。
【问题讨论】:
-
你通过添加“
-
我在 iis 中收到了相同的消息,但它可以工作并在 set-cookie 时间更改相同的站点值。我将 cookieSameSite="None" 添加到我的 web.config 以获取 previuse 行为。注意 cookieSameSite 是 caseSesitive。
-
我只需要为此修补一个 4.5.2 旧版站点 - 配置不支持 SameSite,因此我必须拦截 Session_Start 上的 cookie 并直接使用 "SameSite=None; Secure " 补充道。
-
@ParanoidCoder 为您提供建议,我使用 .net 4.6.1,它适用于我。但是我对您的解决方案有疑问:您使用 URL 重写(IIS 的扩展)或者您通过 Session_Start 中的代码重写它,您能告诉我您的代码吗?
-
@ParanoidCoder 是的,你能分享一下 Session_Start 代码吗?