作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
登录用户后,我将用户 ID 保存在 cookie 中($_COOKIE['user_id']),然后 mysql 检查 cookie 中是否设置了 user_id,以及 user_id 是否存在于数据库中:
SELECT * FROM users WEHERE user_id = '$_COOKIE[user_id]'
它可以工作,但是每个客户端都可以更改 cookie 值,因此客户端可以将 cookie user_id 设置为 1 或 2,3,4 并且它将被登录,因此他们可以破解页面。
我想以某种方式散列或保护我的 cookie user_id 值。我希望你能理解我。你能给我一些建议吗?
最佳答案
不要在 cookie 中这样做。在 cookie 中保存一个散列,并将相应的用户 ID 存储在您的数据库中。您不能使 cookie 安全。
更清楚一点:
当用户登录时,在数据库中为他存储一个唯一的散列。这可能是这样的:sha512('9a7fd98asf'.time().$username)
。这也是您保存在 cookie 中的值。您知道用户已登录,如果他在数据库中有这样的 token 并且它与 cookie 中的值匹配。这实际上就是 session 的处理方式。
关于php - 如何在 cookie 值中保护用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24258446/
我是一名优秀的程序员,十分优秀!