2

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'] と一致するかどうかも確認する必要がありますか?

セッションが乗っ取られたり盗まれたりしないように、安全なサイトが欲しいだけです。

4

2 に答える 2