を使用してURLのクエリを保存し$_GET['query']
、最終的にセッション変数に変換し$_SESSION['var']
てWebページに投稿すると、別のクエリがある場合、別の人が同じクエリまたは別のクエリを表示するとしますか? また、同じ人が異なるクエリを使用している場合、彼は同じものを言うでしょうか、それとも異なるものを言うでしょうか?
3 に答える
に保存する$_SESSION
ものはすべてそのセッションに固有であり$_SESSION
、ユーザーが直接アクセスできるものはありません。たとえば、echo
. ただし、セッションは、サーバーとユーザーの間でやり取りされるセッション識別子( sidとも呼ばれます) によって識別されます (通常は Cookie で、場合によっては URL のクエリ文字列で)。
セッションハイジャックは、セッションを開始した人以外の誰かが sid を取得し、同じセッションを使用してリクエストを行うことができる場合に発生します。この場合、正当なユーザーがアクセスできるすべてのものにアクセスできます。したがって、この場合、機密情報ではありません。セッション ハイジャックを防ぐ方法はたくさんありますが、安全な接続 (HTTPS) を使用するのが最善の方法です。しかし、それは別の質問です。
人が見るものは、それをどのように提示するかによって異なります。サンプルコードを示すと、物事が明確になります。たとえば、次のようにします。
<?php
session_start();
if(isset($_SESSION["query"])) {
echo $_SESSION["query"];
}
$_SESSION["query"] = $_GET["query"];
?>
その後、ユーザーは常に最後のリクエストで送信したクエリを確認できます。
正直なところ、クエリとは何か、セッションとは何かについて少し混乱しているようです。何をしようとしているのかを明確にしていただければ、特にサンプル コードを提供していただけると、さらにお役に立てる可能性があります。
セッションは個々のユーザーに固有です。を使用してセッションを開始するsession_start()
と、ランダム ID が作成され、ユーザーのブラウザの Cookie に保存されます。後続のリクエストでこの Cookie が受信されると、 の呼び出し時にそのセッションが再開されsession_start()
ます。保存した$_SESSION
ものはすべて、その Cookie を保持するユーザーに固有の一意の ID を持つセッションに保存されます。
それが解決することを願っています。
セッションは、たとえば Cookie よりもはるかに安全です。ただし、セッションを盗むことは依然として可能であるため、ハッカーはそのセッションにあるものすべてに完全にアクセスできます。これを回避するいくつかの方法は、IP チェック (かなりうまく機能しますが、fi が非常に低く、それだけでは信頼できません) とナンスを使用することです。通常、ナンスでは、ページごとの「トークン」を使用して、最後のページのノンスが保存されているものと一致することを各ページが確認できるようにします。
もっと深く潜りたいなら。ここに行きます。