Maintain SameSite quot;Strictquot; Session Cookie Policy throughout redirect(在重定向过程中保持严格的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;)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在重定向过程中保持严格的SameSite会话Cookie策略(&Q;)
基础教程推荐
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01