我已经阅读了很多关于保护会话的教程。 很多人都在谈论使用它:
$_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。 这样会好吗或你推荐别的吗?
答案 0 :(得分:3)
您不能依赖任何已发送的HTTP标头。
浏览器可能会在HTTP_USER_AGENT
中发送任何内容
REMOTE_ADDR
会(可靠地)向您发送来自发件人的IP地址(尽管这可能是代理)。
我会说你的方法对于正常情况应该足够强大(猜测正确的会话ID会非常困难)。