保护登录会话


Securing Session for login

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

$_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);

我将把盐存储在数据库中,并在用户注销或在 10 分钟内不执行任何操作时将其删除。然后在每个页面上,我将运行一个函数来检查用户是否使用了正确的id。这会很好还是您推荐其他东西?

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

浏览器可能会以 .
HTTP_USER_AGENT 发送任何内容 REMOTE_ADDR会(可靠地(为您提供发件人的 IP 地址(尽管这可能是代理(。

我会说你的方法应该足够强大,适合正常情况(很难猜出正确的会话ID(。