数据库表:login_info
--------------------------------------
| login | passwd | company |
--------------------------------------
|company1 | passmd5 | company1 |
--------------------------------------
|company2 | passmd5 | company2 |
--------------------------------------
|company3 | passmd5 | company3 |
--------------------------------------
一旦登录匹配,登录名和公司名称将保存在 session 变量中。
$_SESSION['SESS_MEMBER_ID'] = $log['login']; //where $log is the mysql_fetch_assoc result array
$_SESSION['log_company_id'] = $log['company'];
然后使用 session 变量中存储的公司名称,从公司特定的数据库中加载公司详细信息。 我不依赖 cookies 来存储这些信息。 这种方法安全吗?我应该做点别的吗?我应该知道的任何其他安全措施?
最佳答案
与其将 loginid 存储在变量中并只是“假设”它是同一个人,不如将 session 作为记录存储在数据库中。然后在 session 变量中获取此记录的 ID。
这样您就可以将用户的 IP 地址存储在数据库中,当您检查 session 时,您可以根据数据库中的 session 检查 IP 地址 - 这将消除 session 劫持并增加安全性。
关于php - 用户登录和 session :Safe or Not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761411/