cookie会话和安全性

时间:2012-12-29 07:27:55

标签: php session cookies encryption

我有一个网络应用,在用户登录后,他/她为setcookie()设置的用户名设置了Cookie。

请建议更好的安全方法。

1 个答案:

答案 0 :(得分:1)

使用PHP会话而不是cookie。会话变量是服务器端的。 PHP将自动处理会话管理。如果您想要更多控制,也可以重载其功能。

http://php.net/manual/en/intro.session.php

session_start();

$_SESSION['user'] = 'michael'

使用PHP会话,浏览器cookie中只存储会话标识符。您可以在超全局变量$_SESSION中存储任何信息,浏览器将无法查看或篡改这些变量。

为了更加安全,您应该存储用于登录的远程地址,并在每次页面加载时进行比较。这是为了确保没有人劫持会话ID并假装从其他位置登录。

session_start();

if (_logging_in__) {
   $_SESSION['user'] = 'michael'
   $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}

查看用户是否已登录。

session_start();

if (isset($_SESSION['user'])) {
   // the user is logged in
   if ($_SERVER['REMOTE_ADDR'] != $_SESSION['ip']) {
      // the session id was hijacked so log out
      session_destroy();
      exit;
   }
}
相关问题