在重定向过程中保持严格的SameSite会话Cookie策略(&Q;)

编程入门 行业动态 更新时间:2024-10-24 20:11:04
本文介绍了在重定向过程中保持严格的SameSite会话Cookie策略(&Q;)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 假设您有一个网站A,您可以通过PHP会话Cookie控制A受保护页面的登录和导航。因此,为了获得最大的安全性,这些Cookie都是secure、httponly,并且使用的samesite等于Strict,并且仅限于A的域,因此也仅限于主机。

如果登录的用户现在在A确认付款,一些银行/支付服务将自动重定向该用户在相关服务的B页执行后续/多因素身份验证。在客户端响应该附加身份验证后,无论是是还是否,系统通常都会将客户端重定向回A。

我现在想知道的是关于安全的问题。使用上述会话cookie设置,重定向到B并返回到A显然会导致客户端丢失会话,并在A重定向后注销。

这可以通过在服务器配置中将会话cookie的SameSite属性设置为Lax来避免。但是,如果我想将其保持为Strict怎么办?

我想到的解决方案,但不知道如何在PHP中实现:

服务器上的会话cookie配置定义了sameSite属性的Strict值,通常我希望如此。当在A上确认支付时,在服务器端处理该确认的函数,因此在重定向到B之前,将会话Cookie的samesite值更改为Lax。然后,在B重定向到的页面上,我将该值重新设置为Strict。

这样的事情在PHP中是可能的吗?或者,您是否更愿意考虑使用Lax创建一个全新的会话Cookie,将$_SESSION数据复制到其中,然后在重定向后将$_SESSION数据恢复到您使用sameSite="Strict"在A上用于会话的Cookie中?

或任何其他更适合的解决方案?

推荐答案

据我所知,支付提供商通常需要在GET请求中传递某种签名的交易令牌。这样的令牌是在GET中发回的,以及重定向。

在这种情况下,当从站点B接收到带有重定向的令牌时,将会话数据分配给站点A生成的此类交易令牌,将带有重定向的令牌发送到站点B,并恢复会话数据。

令牌必须经过签名,因此站点A和站点B必须确保它源自站点A。

这需要额外的控制措施,以防止拥有此类令牌的人劫持会话:必须进行某种额外的会话验证,例如浏览器指纹识别。

在这种情况下,不需要获取相同的会话Cookie。

更多推荐

在重定向过程中保持严格的SameSite会话Cookie策略(&Q;)

本文发布于:2023-07-15 10:28:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1110663.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:过程中   重定向   策略   SameSite   Cookie

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!