cookie会话和安全性


cookies session and security

我有一个web应用程序,在用户登录后,他/她有setcookie()设置的用户名cookie集。

请建议更好的安全方法

使用PHP会话代替cookie。会话变量位于服务器端。PHP将自动处理会话管理。如果你想要更多的控制,你也可以重载它的功能。

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

session_start();
$_SESSION['user'] = 'michael'

使用PHP-sessions,只有一个会话标识符被存储在浏览器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;
   }
}