PHP セッション ID の一意性
セッション ID は一般に GUID であると考えられていますが、セッション ID の実際の一意性レベルを理解することは、安全な Web アプリケーションを確保します。
デフォルト設定:
そのままの状態では、PHP は gettimeofday() の結果を含むさまざまな要素のハッシュに基づいてセッション ID を生成します。 gettimeofday() は衝突の影響を受けやすいタイムスタンプを返すため、このアプローチでは高度な一意性は提供されません。
一意性の強化:
一意性を向上するには、/dev/urandom からエントロピーを取得するように PHP を構成することをお勧めします。これは、次の PHP ディレクティブを設定することで実現できます:
ini_set("session.entropy_file", "/dev/urandom"); ini_set("session.entropy_length", "512");
セッション ID の作成方法:
セッション ID の生成に使用される実際のアルゴリズムには、プロセス ID (PID) とマイクロ秒単位の時間によってシードされる DFA 乱数ジェネレーター。これによりある程度の一意性が提供されますが、セキュリティの観点からは強力とはみなされないため、上記のエントロピー構成を使用することをお勧めします。
PHP 5.4.0 アップデート:
PHP 5.4.0 以降、session.entropy_file ディレクティブはデフォルトで /dev/urandom または /dev/arandom になります。 利用可能。ただし、PHP 5.3.0 ではこのディレクティブは空のままなので、古いバージョンでセッション ID の一意性を確保するには、手動で設定することが不可欠です。
以上がPHP セッション ID はどのくらいユニークですか? セキュリティを向上するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。