随着最近的更改,SameSite cookie属性似乎正在使我的网站陷入困境。以前在我的网站上运行的跨浏览器iframe现在已损坏-即使使用SameSite = None;确保通过响应标头中的iFrame进行传递。
我看到的报道与说Windows 7不支持SameSite = none的人截然不同。其他人说安全性正在破坏或没有破坏它。但是,即使是当前的Microsoft文档,也没有确切说明Win7 IE11对SameSite = None的反应。
目前,我正在寻找可以帮助的人的提示或技巧。我做了我能想到的一切。这种方法以前有效,现在突然阻止了iFrame并抛出500错误。 set-cookie的顺序可能会导致这种情况吗?
通过一些浏览器测试,我发现了以下内容:
Set-Cookie响应标头:
Set-Cookie MySitePersistence=436457226.47873.0000; path=/; httponly; secure; SameSite=none; Secure
我尝试使用将IE直接定位为重写前提条件
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=none" negate="true" />
<add input="{HTTP_USER_AGENT}" pattern="^.*MSIE ([0-9]{1,}[\\.0-9]{0,})*.*$" negate="true" />
<add input="{HTTP_USER_AGENT}" pattern="^.*Trident/.*rv:([0-9]{1,}[\\.0-9]{0,})*.*$" negate="true" />
答案 0 :(得分:0)
发生此问题的原因是,由于cookie的新更改而导致并非总是发送Asp.NET_SessionID cookie,并且cookie现在具有 SameSite = Lax 属性。
您可以将会话cookie的SameSite属性设置为“无” ,方法是将其添加到 web.config :
<system.web>
<sessionState cookieSameSite="None" />
</system.web>
这与出站规则(SameSite = None;安全)一起工作。您可以参考this simiar thread。
更多参考信息:
(1)SameSite in code for your ASP.net applications
(2)SameSite=Lax in the new world
(3)SameSite cookie updates in ASP.net, or how the .Net Framework from December changed my cookie usage