我已将menu.asp
包含在我的网站中所有网页的标题中:
<!--include file="menu.asp"-->
并且有一个代码来检查用户是否已经在中签名
<%
if request.cookies("user")<>"" then
response.write request.cookies("user")
else
response.write "sign in"
end if
%>
上面的代码在所有页面上都可以正常工作,除非用户从银行付款回来。银行网站将付款结果(也许还设置了一些http头(发布到我网站的一个特殊URL,我会显示一条感谢信息。在这个特殊页面中,除了request.cookies("user")
返回null之外,所有内容都被改写了。我已经检查了控制台和cookie用户的存在,如果我在那之后浏览其他页面,它可以在其他页面上工作。
当第三方网站设置页面标题时,是否有一些特殊条件?
浏览器已经更改了cookie的默认设置,因此默认情况下,第三方网站的请求不再发送cookie,以防止CSRF攻击。
请阅读以下内容以了解更多详细信息:https://web.dev/samesite-cookies-explained/
通过在设置cookie时添加SameSite=None
,浏览器仍然会像过去一样在来自第三方网站的请求中包含cookie,你可以像过去一样实现这一点。然而,这意味着任何请求都可以包含cookie(就像过去一样(,因此,如果有人登录时有恶意方,你的应用程序很容易受到攻击。所以,如果你真的想这样做,或者有更好的方法来处理这件事,请仔细考虑。