在Firefox中打开iframe中的站点时Laravel会话被终止

hfyxw5xn  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(105)

这个问题似乎只会影响Firefox,而且只会影响部分用户(没有明显的版本/安全设置差异)。我们的Laravel应用程序会丢失会话。
我们有一个使用iframe Opayo服务器集成的支付集成。这将在Laravel应用程序的iframe中打开支付表单。提供支付详细信息,支付成功-包括点击Opayo webhook以确认交易。
webhook返回一个重定向URL,Opayo使用它来重定向用户(自然是在iframe中),这个重定向URL只是与应用程序(即iframe父应用程序)在同一个站点上的URL。
在iframe加载重定向URL时,站点会话立即被终止。最初,该URL处的页面脱离了iframe(set window.top.location),并且还执行了一些ajax调用-我删除了这两个操作,以确认它们不是导致会话被破坏的原因。
此网站是使用有效凭证透过HTTPS提供服务。工作阶段Cookie设定为安全、仅限HTTP,而相同的网站是“宽松”
是什么导致了这种现象?

ztyzrc3y

ztyzrc3y1#

这是因为iframe并不是运行在您系统上的页面,因此,如果iframe不在您的系统上,它将无法访问应用程序中的cookie。
如果iframe来自您的应用程序,我建议您在iframe的url中使用查询参数,以便在iframe中传递这些必要的信息。

<iframe src="https://www.foo.bar?value=1&value_2=2"></iframe>

相关问题