我有以下用于 php 会话的 php 代码,并且想知道它是否真的安全。
// Session Security
ini_set('session.cookie_httponly', '1');
ini_set('session.session.use_only_cookies', '1');
ini_set('session.entropy_file', '/dev/urandom');
ini_set('session.cookie_lifetime', '0');
ini_set('session.cookie_secure', '1');
session_name("nameofsite");
session_set_cookie_params(0, '/', '.domain.com');
if (!isset($_SESSION))
session_start();
if (!isset($_SESSION['id'])) {
header("Location: /home.php");
die();
}
当“用户”登录时 - 我通过执行以下操作重新生成一个新的会话 ID:
if ($worked['loginname'] == sha1($username) && $worked['password'] == sha1($password))
{
echo Message("Please wait, you are being logged in.");
echo "<meta http-equiv='refresh' content='1;url=index.php'>";
$_SESSION['id'] = $worked['id'];
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
session_regenerate_id(true);
}
我是否还应该检查 $_SERVER['REMOTE_ADDR'] 是否与 $_SESSION['ip'] 匹配?
我只想拥有一个安全的站点,这样会话就不会被劫持/窃取。