我会尽量保持尽可能短的时间,因此不要浪费太多时间详细了解我的应用程序的安全性,并坚持使用似乎会导致问题的技术:
在我的域名上,我有人将商品添加到购物车中,该购物车存储在php $ _SESSION变量中。一旦他们提交了包含其个人信息的表格(也存储在$ _SESSION中),他们就会被重定向到不同域(同一窗口)上的支付服务提供商,其中支付详细信息将使用密钥作为POST值进行哈希处理。验证并完成付款后,用户将被重定向到成功页面(返回我的域),其中购物车从$ _SESSION转移到数据库,从而成为已下订单。
在多台机器,网络和浏览器类型上进行了广泛的测试,我认为这种方法很合理。然而,有些订单已被清空,并带有一个新的session_id。
假设这是因为会话超时而发生这种情况是合乎逻辑的,但是付款的超时是15分钟,其中购物车的超时是20分钟。此外,我已经看到,当交易在上述期间(即1分钟)内完成时,就会发生这种情况。
结论: 会话数据丢失了 - 离开我的域名为支付服务提供商的域名,或 - 从支付服务提供商返回我的域名
更重要的是:这只发生在用户的某一部分,因此从外观来看这是客户端问题。
我在这里缺少什么?提前谢谢。