请求.当页面由第三方网站初始化时,Cookie不起作用



我已将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(就像过去一样(,因此,如果有人登录时有恶意方,你的应用程序很容易受到攻击。所以,如果你真的想这样做,或者有更好的方法来处理这件事,请仔细考虑。

相关内容

  • 没有找到相关文章

最新更新