SameSite =没有在IE11中安全破坏iFrame

时间:2020-02-12 16:59:12

标签: asp.net cookies windows-7 internet-explorer-11 samesite

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

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

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

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

  • Windows 10-IE11损坏,Edge损坏,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直接定位为重写前提条件 <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" />

    1 个答案:

    答案 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