6

安全な方法で 2 つのページ間で変数を渡す方法が必要です。

POST / GET / Cookie / Session または隠しフィールドを使用できることはわかっていますが、これらの方法はどれも十分に安全ではないと思います。

get は URL で確認でき
ます Cookie はクライアント側であるため、クライアント
セッションから変更することができ、セッション ID のハイジャックに直面する可能性があります。

これらの方法よりも優れた別の方法があることを知りたいのですが、これらの魔女がいない場合は、安全な方法で変数を渡すための最良の方法です。

4

4 に答える 4

11

セッションは、利用できる最も安全な方法です。

セッション ID の再生成はセッションのハイジャックを防ぐのに役立ちますが、https 経由の SSL は本当にそれを防ぎます。

ところで: セッションがハイジャックされ、ユーザー データをクライアントに表示している場合、データを 2 ページ目にどのように取得したかは関係ありません。ハイジャッカーはそれを確認します。サーバー側でのみ使用している場合、ハイジャッカーはそれを認識しません。

于 2012-10-30T15:18:00.817 に答える
3

セッションを使用してページ間で変数値を渡すのが最も安全です

session_regenerate_idセキュリティ レベルが変更されるたびに (ログインなど)セッション ID を再生成します。必要に応じて、リクエストごとにセッション ID を再生成することもできます。

よく読んだ

PHP セキュリティ ガイド: セッション

于 2012-10-30T15:18:15.323 に答える
1

セッションはサーバー側であるため、変数を渡し、セッションのハイジャックを防ぐ最も安全な方法は、php のマニュアルで session_regenerate_id 関数を使用できます: http://php.net/manual/en/function.session-regenerate-id。 php

ただし、常にセッションを使用して変数を渡すという意味ではありません。引き続き Cookie を使用できますが、Cookie に保存する前にデータを暗号化します。

于 2012-10-30T15:40:17.083 に答える
0

GET の使用に問題はありません - それらが正しくサニタイズされている限り...いつでも get をパラメーターのハッシュと組み合わせて、改ざんされるリスクを減らすことができます。また、セッションを使用してそれらが正当であることを確認することもできます。 .

于 2012-10-30T15:19:48.433 に答える