gpt4 book ai didi

php - 如何安全管理连接的用户

转载 作者:行者123 更新时间:2023-11-29 21:33:55 24 4
gpt4 key购买 nike

我想我知道如何做到这一点:

当我的用户连接时,在检查他是否具有正确的用户名/密码后,将创建一个 session key (一个随机的长字符串)并将其放入数据库中。相同的 session_key 被放入 session 中。

如果用户在没有登录的情况下退出我的应用程序,当他回来时,如果他的 session_key 与数据库中的一个匹配,则用户没问题,并将作为拥有该 session_key 的用户进行连接。如果没有, session 将关闭,用户将重新路由到登录。如果没有问题,则会创建一个新的 session_key(以替换旧的)。

我认为这没什么问题,除了两件事:

-如何让 session_key 在一定时间后从数据库中消失?我想我应该在服务器上执行一些代码,但是如果在某个时刻没有人使用我的应用程序,我如何在服务器上执行代码?

-如果只是session_key,可以使用内置的cookie吗?

-可以吗?只是检查数据库中是否有与 session 中的 session_key 相对应的 session_key,或者我应该使用其他东西来确定吗?我将生成一个随机长字符串并以与密码相同的方式对其进行加密,因此我认为它将足够安全,并且 session_key 不太可能相同。

-而不是使用用户名从数据库获取数据,可以吗?使用session_key (getStuffBySessionKey())?

最佳答案

What if my user access the cookie and change the username?

无需将用户名存储在 cookie 中。 Cookie 应包含 session key 信息。当用户尝试登录时,您将通过数据库查询从中获取用户名。如果用户更改 cookie 中的 session 键值,则它将不再与数据库中的事件 session 匹配,并且他们必须重新登录。这本质上与清除 cookie 相同。

In addition to the username and the session_key, I will put the user privileges in the cookie. I will need it to know if the user is admin, creator or visitor.

这些也应该存储在数据库中,而不是存储在 cookie 中。

Is there an other way to check if the user didn't try to change anything WHILE he still is on the app?

不,您应该针对用户的每个请求检查有效的事件 session 。如果没有 session cookie,或者 cookie 与有效 session 不匹配,则将其重定向到登录页面。

正如其他人所指出的,明智的做法是使用 PHP 的内置 session 来完成这一切。

关于php - 如何安全管理连接的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35047161/

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