为什么在OpenCart Admin Panel设计上的授权逻辑会这样(讨厌)?

时间:2019-05-08 16:06:44

标签: php authentication authorization opencart opencart-3

我们有很多身份验证和授权方法(OAuth,2FA等)可以使用,以确保我们在电子商务平台上帐户的安全性。 最近,我对OpenCart 3.0.2.0的管理员登录逻辑进行了仔细的研究,并试图弄清为什么这样的授权逻辑设计:

  1. 将user_token存储在数据库的会话表中(酷)
  2. 将已记录状态存储在PHP内存中(酷)
  3. 将user_token存储在管理员用户的浏览器中(酷)
  4. 提供令牌过期的时间(很酷)
  5. 随时随地在URL GET变量上保留user_token(???)

我们可以检查admin用户的user_token是否有效并且是否在数据库的会话表中(登录时会检查),然后我们可以跟踪PHP内存中的记录状态,也可以检查是否会话已过期。

问题是:为什么我们仍然需要在各处的get变量上保留user_token?

1 个答案:

答案 0 :(得分:0)

稍后在Internet上讨论此安全漏洞后,添加了user_token变量。

令牌的目的是防止黑客向用户发送网址中带有恶意代码的链接,该链接将使用经过Admins身份验证的会话来入侵Opencart管理面板。

在放置了令牌的情况下,OpenCart会对其进行检查并在令牌不正确的情况下退出管理员。