我已经创建并完善了注册和登录系统,但是我相信当您创建会话时会出现棘手的部分。据我所知,这是由于劫持和固定。老实说,我不完全理解这个概念。
我整天浏览互联网并进行了大量研究。到目前为止,他的以下文章对我很有用:
到目前为止,我几乎没有,我真的可以使用一些帮助和指导。这是我到目前为止所得到的一些信息:
当用户密码匹配并且他们已经使用登录脚本确认了他们的身份时,将调用以下函数。会话在登录脚本的顶部启动。
function begin_session()
{
session_regenerate_id();
$_SESSION['valid'] = 1;
$_SESSION['fingerprint'] = md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']);
}
我使用 $_SESSION['valid'] 变量作为简单的用户登录确认。我将会话分配给单个用户代理和 IP 地址。我看到用户代理是如何相当无用的,因为它很容易被伪造,但我觉得拥有它比没有它更好。
对我来说,更改/动态 ip 的用户很明显会被注销......但是告诉我这一切的每个人都未能为我提供更好的选择,或者更好地向我解释。
然后,我使用以下函数将当前用户代理与创建会话时记录的原始用户代理相匹配。
function authenticate()
{
session_start();
if ($_SESSION['fingerprint'] != md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'])) {
session_destroy();
echo 'die';
header('Location: http://website login page/');
exit();
}
}
目前由于我缺乏了解,我不知道我在哪里容易受到攻击,也不知道我可以去哪里进行改进。这对我来说都是非常新的,至少目前我正在尝试在业余时间学习这一点。这对我来说都是新的,我想确保最好的工作。