关于asp.net:SameSite=没有在IE11中安全破坏iFrame

SameSite=None w/ Secure Breaking iFrame in IE11

随着最近的更改,SameSite cookie属性似乎正在使我的网站陷入困境。以前在我的网站上运行过的跨浏览器iframe现在已损坏-即使使用SameSite = None也不行;安全地通过响应头中的iFrame传递。

我看到的报道与说Windows 7不支持SameSite = none的人截然不同。其他人说安全性正在破坏或没有破坏它。但是,即使是当前的Microsoft文档,也没有确切说明Win7 IE11对SameSite = None的反应。

目前,我正在寻找可以帮助的人的提示或技巧。我做了我能想到的一切。这种方法以前有效,现在突然阻止了iFrame并抛出500错误。 set-cookie的顺序可能会导致这种情况吗?

通过一些浏览器测试,我发现了以下内容:

  • Windows 10-IE11损坏,边缘损坏,Edge(beta)正常工作
  • Windows 8.1-IE11有效,Edge(beta)有效
  • Windows 8-IE11损坏,Edge(beta)正常工作
  • Windows 7-IE11损坏,无边缘
  • Set-Cookie响应标头:
    Set-Cookie MySitePersistence=436457226.47873.0000; path=/; httponly; secure; SameSite=none; Secure

    我尝试使用以下方式将IE直接定位为重写前提条件:




    发生此问题的原因是由于Cookie的新更改而导致并非总是发送Asp.NET_SessionID cookie,并且该cookie现在具有SameSite = Lax属性。

    您可以通过将其添加到web.config中来将会话cookie的SameSite属性设置为"无":

    1
    2
    3
    <system.web>    
         <sessionState cookieSameSite="None" />    
    </system.web>

    这与出站规则(SameSite = None;安全)一起起作用。您可以参考这个类似的线程。

    更多参考信息:

    (1)ASP.net应用程序代码中的SameSite

    (2)SameSite =新世界中的松懈

    (3)在ASP.net中更新SameSite cookie,或者从12月开始的.Net Framework如何更改我的cookie用法