技术原理

OpenCart 调整 SameSite Cookie 难题表明(以串连ezShip特征分析)

有关 SameSite Cookie 所产生的难题,绝大多数有串连外界金物流网站的网购网站,应当都没法防止,还不掌握 SameSite 难题的,提议先阅读文章 电脑浏览器的 SameSite Cookie 对 OpenCart 网址导致的危害 本文。

这篇文章内容要以 ezShip 中国台湾便捷配 的串连特征分析,来表明如何解决 SameSite 所导致的难题,及其详细介绍处理的方式 。

ezShip中国台湾便捷配 出示了店到店( 超商提货/ 超商提货支付) 派送服务项目,为先家与OK、莱尔富、全家人三大通道协作之店到店( 超商提货/ 超商提货支付) 综合服务平台,当顾客从网购平台(如 OpenCart),通过 API 的串连自动跳转到 ezShip,挑选要揽收的超商门面以后,ezShip 会将顾客选择的超商门面相关资料,传输回网购网站,传输的 API 相关资料,可参照 http://www.ezship.com.tw/file/ezship_WebOrder_HttpRequest.pdf

因为顾客在 ezShip 选好超商门面后,ezShip 是以 post 方法跨站自动跳转到网购网站,因此在 SameSite 体制下,将没法另外传输 cookie 到网购网站,但实际上服务器端 Session 值都還是存有的,OpenCart 2.x 的 Session 材料预置是存储在档案资料中,而 OpenCart 3.x 则是改成存储在信息库中,你能检查材料表格中的 oc.session,如下图。

即然系统软件没法再从自动跳转回家的另外获得 cookie 中的 Session ID,那么就改以别的方法,让网址有方法在 ezShip 自动跳转回家时,获得恰当的 Session ID 值就可以,作法有很多种多样,这里举一种方法来详细介绍,坚信大伙儿能融会贯通,在不一样的情景下,思索出合适的应变力做法。

人们检查 ezShip 的串连 API 文档,能够 发觉传送的主要参数有预埋一个 webPara 栏位,能够 给你送至 ezShip 再传送回家,能做为 Token 认证作用,实际上绝大多数的串连 API 规格型号,常有预埋那样的栏位,有的乃至不只一个栏位。

我们可以运用这一栏位来传送 Session ID,如此一来,在转到 OpenCart 时,就可以获得本来得 Session ID 值了,以便提升安全系数,先向 Session 开展编号再传输,等传回后再开展编解码,应该是更理想化,但是要留意编号以后的字串长短,不可以超出 API 的限定,以防没法传输或被剪裁,导致传回后没法编解码。

最终要改动的是,在 OpenCart 的 Session Class 中,改动分辨 Session ID 的 Cookie 是不是存有的逻辑性,在学不上 Cookie 以后,多做一个姿势,分辨是不是有 $_POST 的 webPara 主要参数,若有,就开展编解码,若能编解码取得成功,就把取下的 Session ID 值,特定给 session_id(),这般,OpenCart 就能获得本来的 Session ID 值,再次一切正常运行了。

除开将上述情况 Session ID 编号后再传输,以提升安全系数以外,此外还能通过别的的新闻资讯认证,来提升过虑的副本,比如自动跳转离去前,纪录下使用人的 IP (关系至 Session ID),等转到时再核对一次,此外,也可以在转到时,查验 Referer 网站地址,分辨是不是为不久跳出来的目地网站地址,或创建权限来查验,全是能够 让网址更安全性的设定。

上边的做法,并不是唯一的应变方法,终究每一种串连的情景都不一定同样,但本人觉得,通过这类型 Token 的方式来处理 SameSite Cookie 难题,是比立即将 Cookie 的 SameSite 设为 None 来的安全性,在你的网址还没有开发设计出理想化的处理方法以前,简易的将 Cookie 改设为 SameSite=None,是能够 做为过渡时期的处理方法,但长远打算,還是应当让 SameSite 体制起效,过虑掉将会的故意个人行为,才算是较为理想化的应变力方式。

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能的应用领域论文 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录