curl によってリクエストされたページの session_id が変化し続けるのはなぜですか?
次の場合: a.php が b.php をリクエストするのに b.php の session_id が変化し続けるのはなぜですか?
a.php と b.php が異なるドメインにある場合、a.php と b.php が同じディレクトリにあることが常に理解できるわけではありません。
安全上の理由から
curl によってリクエストされたページの session_id が変化し続けるのはなぜですか?
次の場合: a.php が b.php をリクエストするのに b.php の session_id が変化し続けるのはなぜですか?
a.php と b.php が異なるドメインにある場合、a.php と b.php が同じディレクトリにあることが常に理解できるわけではありません。
安全上の理由から
セッションは最初のリクエストによって生成され、Cookie に配置されます。これをサーバーに渡さない場合、サーバーはあなたを新規ユーザーであると見なし、新しいセッション ID を生成します。
よく考えてみると、
curl は指定されない限り、Cookie などをサーバーに持ち込むことはありません。それで…
セッション ID は Cookie に保存され、この Cookie はクライアントがリクエストを送信するたびに持ち込まれます (HTTP のステートレスな性質)。
curl が初めて b.php をリクエストするときは、Cookie をキャプチャしてローカルに保存する必要があります。この Cookie を開いて内部のコンテンツを確認できます。
curl 経由で b.php に 2 回目にアクセスするときは、以前に保存した Cookie を持ってきます。
はい、Cookie を持参する必要があります。これが模擬ログインの原則です。