我正在使用 PHP 开发 RIA。为了防止 session 劫持,我引入了一个 token ,在登录时生成,基于盐、ISO-8601 周数和用户的 IP。
$salt = "blahblahblah";
$tokenstr = date('W') . $salt . $_SERVER['REMOTE_ADDR'];
$token_md5 = md5($tokenstr);
define("token_md5", $token_md5);
目前,每个请求都通过 GET 或 POST 传递它,但我想知道我是否可以通过将它作为 cookie 提供来避免这种情况,因为它取决于用户的 IP。我刚刚开始学习类(class),所以我想知道这样做是否存在任何安全问题?这是个坏主意吗?
最佳答案
用户保留的任何数据都可能被盗;访问者发送的任何数据都可能被欺骗。最好在 session 打开时将远程 IP 存储在 $_SESSION
中,并将远程 IP 与每个请求进行比较。如果它们不匹配,则可能是劫持。生成新 ID 并让用户重新登录。
关于PHP:使用存储为 cookie 的 token 防止 session 劫持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777483/