codeigniter - 从支付网关重定向后,codeigniter 4 会话数据丢失
问题描述
PHP 7.3.23 和 CI 4.0.4 我在支付完成后重定向到 ccavenue 支付网关,会话数据丢失。它在控制台中显示消息为:
“通过指定其 SameSite 属性指示是否在跨站点请求中发送 cookie。” 因为 cookie 的 SameSite 属性未设置或无效,所以默认为 SameSite=Lax,这会阻止 cookie 在跨站点请求中发送。这种行为可以保护用户数据不被意外泄露给第三方和跨站点请求伪造。
解决方案
您很可能确实希望将会话 cookie 设置为SameSite=Lax
以改进对 CSRF 攻击的保护。听起来好像您的支付网关发送POST
请求以将用户返回到您的站点。
您应该:
处理没有会话 cookie 的返回请求。例如,该请求应该包含有效负载中的所有内容,以便您确定交易是否成功。然后,您可以显示带有链接的状态页面或类似页面,以允许用户继续访问其他页面。跟随任何这些链接将是同一站点导航,并将再次包含您的会话 cookie。
使用
POST
/Redirect/GET
模式,您可以在其中处理传入POST
请求以从中提取详细信息,然后执行重定向到您站点上的另一个页面,该GET
请求是同站点请求,并且您的会话 cookie 将再次可用。
我也在这里解释过:https ://goo.gle/samesite-3d-secure
推荐阅读
- python - 使用 Python + Selenium WebDriver 选择一个段落
- ubuntu - 带有 Netbeans 的 Java 读卡器
- javascript - 使用 firebase 功能将图像上传到云存储错误
- jquery - 使用 ajax 检查内容更改,仅在检测到更改时才使用 jQuery 替换?
- python - 从多个 numpy 数组中创建一个巨大的字典
- php - 使用什么来为多个用户运行 php 脚本?
- dax - 查找最小值过滤两列
- asp.net-mvc - 如何使用所有浏览器的宽度或为什么不能使用所有浏览器的宽度
- azure - ARM 模板错误嵌套资源类型的段数必须与其资源名称相同
- javascript - 如何在不使用 Math.random 函数的情况下在 JavaScript 中创建随机函数?