首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Internet /Edge(非铬)在SameSite=Lax安全时添加额外的SameSite=None

Internet /Edge(非铬)在SameSite=Lax安全时添加额外的SameSite=None
EN

Stack Overflow用户
提问于 2020-02-05 12:36:28
回答 2查看 2.2K关注 0票数 1

我在的iframe中加载了.NET MVC应用程序。最初,用户将打开主页。主控制器重定向到登录页面:

代码语言:javascript
复制
return RedirectToAction("Index", "Login", new { returnUrl = redirectURL, error = errorMessage });

在此更新之前,在没有指定或未指定KB4533002 .NET累积更新时添加SameSite=Lax之前,这是正常的。然后,我在web配置中添加了出站规则以发送SameSite=None;Secure

代码语言:javascript
复制
<rewrite>
      <outboundRules>
        <clear />
        <rule name="Add SameSite" preCondition="No SameSite">
          <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
          <action type="Rewrite" value="{R:0}; SameSite=None" />
        </rule>
        <rule name="Add Secure" preCondition="No Secure">
          <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
          <action type="Rewrite" value="{R:0}; Secure" />
        </rule>
        <preConditions>
          <preCondition name="No SameSite">
            <add input="{RESPONSE_Set_Cookie}" pattern="." />
            <add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
          </preCondition>
          <preCondition name="No Secure">
            <add input="{RESPONSE_Set_Cookie}" pattern="." />
            <add input="{RESPONSE_Set_Cookie}" pattern="; Secure" negate="true" />
          </preCondition>
        </preConditions>
      </outboundRules>
    </rewrite>

这适用于Chrome、Firefox和最新的Edge。

但是Internet和Edge (不是Chromium)增加了额外的SameSite:

代码语言:javascript
复制
HttpOnly: true
path:/
SameSite: Lax
SameSite: None
Secure: true

来自边缘开发工具的屏幕截图

有谁知道怎么防止这事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-06 08:14:59

谢谢你,于周。这是有帮助的,但我没有具体说明,而是将其设置为None。

代码语言:javascript
复制
<sessionState mode="SQLServer" sqlConnectionString="***" ... cookieless="UseCookies" cookieSameSite="None" />

出站规则(SameSite=None;Secure)对我起作用。

票数 0
EN

Stack Overflow用户

发布于 2020-02-06 05:37:52

这可能是因为默认的SameSite设置为lax。您可以尝试通过根据SameSite设置(SameSiteMode)(-1)来删除此链接属性

在应用了这些更新的系统上,可以通过将SameSiteMode设置为(SameSiteMode)(-1)来指定先前的行为。可以在Unspecified中使用web.config中的字符串指定此行为。

有关如何设置它的更多信息,可以参考这篇文章这个答案

此外,您还可以参考两个类似的线程:

SessionID曲奇自动?

(2)如何将SameSite cookie属性设置为显式无ASP.NET核心

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60076007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档