保护会话以进行登录

时间:2013-10-03 17:05:15

标签: php encryption

我已经阅读了很多关于保护会话的教程。 很多人都在谈论使用它:

$_SERVER['REMOTE_ADDR']

但我不想使用它,因为有些人正在使用代理服务器。 我有一个关于

的问题
$_SERVER['HTTP_USER_AGENT']

我读到人们在IE中遇到此问题,所以我不确定是否应该使用它。 如果我这样做还不够吗?

$ID = $user['ID'];
$Salt = mcrypt_create_iv(32, MCRYPT_DEV_RANDOM);
$_SESSION['ID'] = hash('sha256', $ID . $Salt);

我会将salt存储在数据库中,并在用户注销或10分钟内不执行任何操作时将其删除。 然后在每个页面我都会运行一个函数来检查用户是否使用了正确的id。 这样会好吗或你推荐别的吗?

1 个答案:

答案 0 :(得分:3)

您不能依赖任何已发送的HTTP标头。

浏览器可能会在HTTP_USER_AGENT中发送任何内容 REMOTE_ADDR会(可靠地)向您发送来自发件人的IP地址(尽管这可能是代理)。

我会说你的方法对于正常情况应该足够强大(猜测正确的会话ID会非常困难)。