【发布时间】:2014-08-07 03:34:42
【问题描述】:
登录用户后,我将用户 ID 保存在 cookie ($_COOKIE['user_id']) 中,然后 mysql 检查 cookie 中是否存在 isset 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 中使用您可以查看的完全随机值在数据库中。
-
SQL 注入顺便说一句,最好使用准备好的语句。