2

セッションの保護に関する多くのチュートリアルを読みました。多くの人がこれを使用することについて話している:

$_SERVER['REMOTE_ADDR']

しかし、一部の人々はプロキシサーバーを使用しているため、使用したくありません。について質問があります

$_SERVER['HTTP_USER_AGENT']

IEでこれに問題があると読んだので、これを使用する必要があるかどうかわかりません。これだけやったらダメなの?

$ID = $user['ID'];
$Salt = mcrypt_create_iv(32, MCRYPT_DEV_RANDOM);
$_SESSION['ID'] = hash('sha256', $ID . $Salt);

データベースにソルトを保存し、ユーザーがログアウトするか、10 分間何もしないと削除します。そして、すべてのページで、ユーザーが正しい ID を使用しているかどうかをチェックする関数を実行します。これでいいですか、それとも何か他のものをお勧めしますか?

4

1 に答える 1

3

送信された HTTP ヘッダーに依存することはできません。

ブラウザはHTTP_USER_AGENT.
REMOTE_ADDR送信者からのIPアドレスを(確実に)提供します(ただし、これはプロキシである可能性があります)。

あなたのメソッドは、通常のケースでは十分に強力であるべきだと思います (正しいセッション ID を推測するのは非常に難しいでしょう)。

于 2013-10-03T17:11:20.003 に答える