Php 如何安全地存储客户&x27;谁的用户名?

Php 如何安全地存储客户&x27;谁的用户名?,php,cookies,Php,Cookies,在我的网站上,在登录时,我客户的用户名get存储在一个cookie中,该cookie将在15天后过期。每当他回到我的网站,我都会添加一个php代码,检查1)他们是否有cookie 2)那里的用户名是否有效。我也用哈希密码做了同样的事情,但有人告诉我这很危险,我应该用密码删除它。现在,任何人都可以将cookie的值更改为另一个用户名。解决这个问题的安全方法是什么?我应该添加/删除什么?存储散列密码到底有危险吗?非常感谢您的帮助。我不确定您是否完全熟悉“会话”的概念。通常,在cookies中存储敏感

在我的网站上,在登录时,我客户的用户名get存储在一个cookie中,该cookie将在15天后过期。每当他回到我的网站,我都会添加一个php代码,检查1)他们是否有cookie 2)那里的用户名是否有效。我也用哈希密码做了同样的事情,但有人告诉我这很危险,我应该用密码删除它。现在,任何人都可以将cookie的值更改为另一个用户名。解决这个问题的安全方法是什么?我应该添加/删除什么?存储散列密码到底有危险吗?非常感谢您的帮助。

我不确定您是否完全熟悉“会话”的概念。通常,在cookies中存储敏感信息是非常危险的。通常,最好将会话ID和会话信息存储在数据库中(例如,Redis是一个键值数据库,它通常是会话缓存的良好选择)。在每个请求上,中间件代码都会拦截HTTP请求,检查cookie中的会话ID,并检查DB中的会话是否有效。不确定您正在使用什么框架,但PHP最流行的是和。至于密码,请确保使用bcrypt算法,该算法的速度相对较慢,因此攻击者无法使用暴力破解密码。

我理解,但有一点除外。当客户登录并离开浏览器,然后再次登录时,我希望他保持登录状态,但我没有cookie来识别他的用户名,据我所知,在关闭浏览器时会话将被破坏。如何处理?会话的持久性取决于您如何配置它,如果您没有设置cookie的过期日期,它们将在关闭浏览器后被销毁。所以,设置过期日期。看一看