Web服务环境由Windows 2012服务器,IIS8.5,经典asp操作。
这是有关Chrome 80ver SameSite问题的问题。
在我们的网站上,我们通过调用iframe进行付款,并通过returnurl接收结果。但是,returnurl中存在一个问题,该问题会更改现有的会话值(有时会保留它,有时会更改它)。
我试图第一。在源代码中添加标头,如下所示
Response.AddHeader "Set-Cookie", "SameSite=None; Secur; path=/; HttpOnly"
第二。添加web.config
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" sameSite="None" />
<sessionState cookieSameSite="None" />
第三。添加web.config重写
<rewrite>
<outboundRules>
<rule name="AddSameSiteCookieFlag">
<match serverVariable="RESPONSE_Set-Cookie" pattern="^(.*SessionID)(SameSite=Lax)" />
<action type="Rewrite" value="{R:1};SameSite=None" />
</rule>
</outboundRules>
是否可以在IIS8.5中将相同站点设置设置为无?
我正在运行此问题中提到的确切配置,并发现以下web.config重写规则可以用作基准解决方案:
<rewrite>
<outboundRules>
<rule name="Add HttpOnly" preCondition="No HttpOnly">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; HttpOnly" />
<conditions>
</conditions>
</rule>
<rule name="Add SameSite" preCondition="No SameSite">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; SameSite=None; Secure" />
</rule>
<preConditions>
<preCondition name="No HttpOnly">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
</preCondition>
<preCondition name="No SameSite">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None; Secure" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>