我如何使用PHP创建一个安全的“记住我”系统?

我有一个登录系统。 我如何使用cookie来实现安全的记住我系统。

我应该使用cookie用户名和密码存储什么值,但我该如何保护它?


然后在db中定义一个Salt foreach用户

在设置

$expire_time = time() + 2 * 7 * 24 * 3600; // 2 weeks exp time

setcookie( 
    "rememberMe",
    crypt($username, $salt),
    $expire_time,
    '/'
);

在验证

$_COOKIE['rememberMe'] === crypt($username, $salt)

也许你可以创建一个与该用户和mac地址在数据库中关联的16个字母/数字字符串,以便只有该机器才能登录(只要人们不会太努力地欺骗mac)。


也许你应该存储(在你的数据库中)访问者IP,用户代理,时区或安装的插件。 使用Javascript可能会很容易,因为获取MAC地址可能是一个问题。

然后,您可以轻松检查用户是否具有与上次相同的IP,UA,时区或插件:)或者您可以使用MaxMind检查他的位置并确认他是否使用了正确的时区。 如果有什么可疑的,你应该丢弃cookie凭证。

链接地址: http://www.djcxy.com/p/21885.html

上一篇: How can I create a secured "remember me" system using PHP?

下一篇: PHP isn't processing some form fields