可能重复:
防止会话劫持
我正在为PHP
Web 应用程序编写我的登录和身份验证系统,并寻找防止会话劫持的最佳实践。登录页面集的会话:
$_SESSION['email_address'] = $_POST['email_address'];
$_SESSION['ip_address'] = $_SERVER['REMOTE_ADDR'];
然后在每个页面和操作中,我检查以确保会话存在,并且存储在会话中的 IP 地址与 $_SERVER['REMOTE_ADDR'] 中的 IP 地址匹配。
if(isset($_SESSION['email_address']) && isset($_SESSION['ip_address']) && $_SESSION['ip_address'] == $_SERVER['REMOTE_ADDR']) {
//valid auth
}
但是,在网上阅读,有些人说仅仅检查 IP 地址是不够的。还需要什么?此外,还有关于使用session_regenerate_id()
. 这对我的代码有何影响?我会session_regenerate_id()
在每一页上调用吗?
谢谢。