セッションは Cookie を使用して、ユーザーがログインしているかどうかを記憶します。セッションを開始すると ( session_start()
)、サーバーは一意のセッション ID を持つセッション Cookie を送信します。ユーザーがログインを必要とするページを要求すると、サーバーは ID を含む Cookie をチェックして、それが有効であることを確認します。
セッション固定化とセッション ハイジャックは非常に似ていますが、主な違いはセッションがどのように侵害されるかにあります。URL に SESSID を含めないでください。ハッキングを求めているだけです。代わりに、ユーザーがログインしているときにセッション変数を作成することをお勧めします
。EG:
自動ログイン: コードを確認
session_start();
if(isset($_SESSION['logged_in'])){
header("location:loginonlypage.php")
}
セッションのハイジャック/修正の防止:
ただし、セッション ID が URL に含まれていないからといって、セッションのハイジャック/修正が発生しないわけではありません。これを防ぐためのセーフガードとしてユーザーの IP を使用します。また、セッション Cookie を HTTP のみに設定して、Javascript が Cookie を食べたがらないようにしてください :)
ini_set('session.cookie_httponly', 1); //SET HTTP ONLY COOKIE
if (!isset($_SESSION['last_ip'])) {
$_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR'];
}
if ($_SESSION['last_ip'] !== $_SERVER['REMOTE_ADDR']) {
session_unset();
session_destroy();
}