php - 用户登录和 session :Safe or Not

标签 php mysql session authentication

数据库表: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/

相关文章:

php - MySQL 无法满足我的需求

python - 我将如何在 Django 中执行此查询?

mysql - 如何在 MySQL 中找到 "Delete rows ignoring errors"?

php - 为什么数据不显示 php mysql

html问题中的php变量

javascript - 为 Web 压缩和调整图像大小

php - 在PHP环境中将Docker与Xdebug和Sublime Text集成

php - 如何在 Laravel 5 的模型中放置复合键?

mysql - 不同的顺序取决于条件

javascript - Angular session 存储不起作用