gpt4 book ai didi

php - 像亚马逊一样无休止的 PHP session (理论)

转载 作者:行者123 更新时间:2023-12-04 20:51:31 25 4
gpt4 key购买 nike

找不到此问题的重复项,所以这里是:

我有兴趣建立一个 php 网站,其帐户可以像亚马逊一样工作。我的意思是,当我去亚马逊时,我的 session 总是“登录”,但不是真的。该网站知道我是谁,我可以访问我保存的购物车数据和某些“不安全”的帐户操作,但每当我想做任何事情(例如查看我的订单或实际结帐)时,我仍然必须登录。

我在亚马逊上处于“未登录但有点登录”状态时查看了 cookie,我没有看到任何内容跳出来,但我猜测它们存储了某种允许该网站的标识符 cookie基于我的用户帐户启动 session ,但处于“未经身份验证”模式,其中大多数内容都受到限制,但不是全部。

所以我想知道是否有人对我的想法有任何提示或陷阱:

1 - 用户帐户都具有某种 MD5,该 MD5 是在创建/更新帐户时根据用户名和密码创建的。

2 - 每次对 session 进行身份验证时,它都会确保有一个/permanent/cookie 与此 md5 哈希一起存储。

3 - 当访问者加载页面时,如果没有事件 session 数据,它会检查 md5 cookie 并将用户基本的“未经身份验证”信息加载到与该 md5 匹配的 session 中,因此现在网站知道他们的姓名并他们保存的购物车等。

(有人可以尝试随机 md5 哈希来尝试加载不同的用户名/购物车从而获得“登录电子邮件”地址,这是否是一个问题?是否值得我花时间在 md5 检查上进行某种强力检测?)

4 - 当处于未经身份验证状态的用户尝试执行需要身份验证的操作时,将显示登录页面,并预先填写电子邮件/帐户名称框。然后在成功登录后重定向到请求的操作。

(如果没有 md5 cookie 或 md5 不好,只需扔掉 cookie 并显示站点“无用户”模式。)

想法?担忧?更好的想法?

最佳答案

为了做这样的事情,我建议设置一个加密的 cookie,您可以使用某个 salt 来读取它。 。在加盐/加密的 cookie 中,保存用户 ID 和登录日期,以便您可以设置时间限制来检查之间的差异,并确定是否允许他们访问某些 insecure网站的部分内容。

我真的觉得这是解决此类问题最有效的方法。将其他所有内容保存在数据库中,然后使用 cookie 保存的 ID 从数据库中获取信息(当然,在解密 cookie 之后),获取您想要的其余数据(购物车等)

希望这有帮助!

关于php - 像亚马逊一样无休止的 PHP session (理论),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34702107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com