【问题标题】:How can I make Remember Me more secured我怎样才能让记住我更安全
【发布时间】:2012-05-22 15:03:50
【问题描述】:

我正在尝试在我的网站上执行“记住我”并将以下代码添加到我的登录脚本中。

密码通过 sha1() 函数运行,用户名在分配给 SESSION 之前被修剪并通过 mysql_real_escape_string() 运行。

我怎样才能使它更安全,防止劫持。

谢谢。

if($_POST['remember']) {
    setcookie("CookieUser", $_SESSION['usrename'], time() + 60 * 60 * 24      100, "/");
    setcookie("CookiePass", $_SESSION['password'], time() + 60 * 60 * 24       100);
}

【问题讨论】:

  • 你可以在php中使用base64_decode()和base64_encode()函数
  • 使其免受劫持/黑客攻击的一种方法是不将密码放入 cookie。就像 KoolKabin 所说,使用各种“因素”的标记或复杂算法的盐,然后使用它们。
  • 您应该尽可能重用现有的身份验证框架,因为它确实很复杂。例如,看看github.com/delight-im/PHP-Auth

标签: php session cookies passwords


【解决方案1】:

为了记住我,我们使用令牌设置。当用户使用用户名和密码登录系统时,会在数据库中生成一个带有相应用户名、ip 和其他因素的 token。我使用相同的令牌和用户名保存为 cookie,当用户从 cookie 中返回令牌和用户名时,我们再次使用指定的 ip、用户名和其他因素验证令牌,如果匹配所有,则设置用户登录状态。

这样我就可以跳过将密码存储在 cookie 中并且有点安全。

【讨论】:

  • 感谢您的回答...但是如何使用令牌?能否请您举例说明如何实施这些谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 2017-09-07
  • 2011-06-14
  • 2012-08-02
  • 1970-01-01
  • 2012-10-02
相关资源
最近更新 更多