0

私はセキュリティに少し慣れていないので、誰かが光を当てることができるかどうか疑問に思っていました.

間違っていたら訂正...

トークンは、session_id を使用するときに使用される単なる用語ですか?

また、正確には何のために session_id (またはトークン?) を使用することになっていますか? セキュリティ上の理由はわかっていますが、ユーザーがログインしたときに新しい session_id を与える必要がありますか?

すなわち:私のすべてのphpページで、持っているはずですか

if(isset($_SESSION['token'])){
 // html body
}

ユーザーがセッショントークンを持っていない場合、ユーザーはページにアクセスしませんか?

これを片付けてくれてありがとう。

4

2 に答える 2

1

セッション ID は、バレット キーなどのサーバー側のセッション情報を識別するために使用されます。有効な ID が (何らかの手段で) 渡されると、PHP はデータにアクセスできるようになります。

セッションは、ユーザー認証の詳細を格納する手段としてよく使用されます。サイトへのサインインに成功したら、セッションを開始してユーザー データを保存し、その後のページ ビューで個人情報の使用を許可するかどうかを決定できます。

たとえば、ログイン後は次のようになります。

session_start();
session_regenerate_id(true); // avoid trivial session fixation
$_SESSION['valid'] = true;
$_SESSION['user_id'] = 123; // identify the user
// whatever else you want to add in your session
header('Location: /index.php'); // redirect the user after signing in

$_SESSION['valid']、セッション採用攻撃を防ぐトークンです。ただし、これを使用session_regenerate_idすると、それほど重要ではなくなります。以降のページ ビューでは、次のコードを記述して、セッションが有効であり、ユーザーがサインインしているかどうかを確認できます。

session_start();
if (!isset($_SESSION['valid'])) {
    die("Invalid session");
}
// do stuff with $_SESSION['user_id']

セッション ID は、主に 2 つの方法で渡すことができます: Cookie 経由 (一般的) または経由$_GET(あまり一般的ではありません)。セッション ID がどのように渡されるかは、.ini 設定によって決まります。

  • session.use_cookies (Cookie を使用するかどうか)
  • session.use_only_cookies (Cookie のみを許可するかどうか、経由で渡されないかどうか_GET)

詳細はこちら: http://sg.php.net/manual/en/session.configuration.php

于 2012-05-07T06:47:34.843 に答える
1

トークンはキーカードと考えることができます。通常、資格情報が有効な場合、新しいトークンを返すサーバーにログイン要求を送信します。次に、サーバーからデータを要求する場合は、資格情報を再送信する代わりに、そのトークンを彼に「表示」するだけです。したがって、トークンは情報を隠すために使用されます。

セッション ID は必ずしもトークンではありません (強い意味で)。ユーザーを識別するために使用されますが、ユーザーが誰であるか、またはユーザーがどのようなアクセス権を持っているかについては何も述べていません。

ただし、ユーザーとそのアクセス権に関する情報をセッションに保存する場合 (例: $_SESSION['userId'] = 17; $_SESSION['loggedIn'] = true;)、セッション ID はトークンになります。それをサーバーに送信するとユーザーが識別され、サーバーはそれからアクセスを許可するか拒否するかを判断できます。 . クライアントに送信されない情報を隠すのはやり過ぎなので、別のトークンをセッションに格納しても意味がありません。ユーザーに関する情報をセッションに安全に保存し、セッション ID をその情報への「トークン」として使用できます。

于 2012-05-07T06:58:58.163 に答える