あるページから別のページに変数を渡すとき
ユーザーがURLパラメーターの値をいじり回さないようにするため
するのが最善ですか...
1)セッションを介して変数を渡す
2)署名と一緒にURLで変数を渡します
あるページから別のページに変数を渡すとき
ユーザーがURLパラメーターの値をいじり回さないようにするため
するのが最善ですか...
1)セッションを介して変数を渡す
2)署名と一緒にURLで変数を渡します
署名を渡す限り、署名の整合性を常にチェックするため、値をどこに渡すかは問題ではありません。
私がすることは、セッションですべて(署名を含む)を渡すことです。URLをクリーンに保つためだけに。しかし、それはあなたとあなたの特定のユースケース次第です。
セッションを使用する場合、ユーザーは値の内容を制御できません。
また、ビューステート暗号化を有効にしている場合は、ビューステートを使用できます。ビューステートの利点は、単一のページにローカライズされることです。これは、ユーザーがWebサイトで2つのタブを開いている場合、変数が特定のタブにローカライズされることを意味します。
別のページからビューステートにアクセスする方法については、 http://www.codeproject.com/KB/viewstate/AccessViewState.aspxを参照してください。
ユーザーが気が狂ってパラメータを削除することを本当に心配している場合は、セッション状態を使用できますが、履歴を失う可能性があります。つまり、[戻る]ボタンです。
2番目のオプションは良さそうに見えますが、ユーザーが物事を削除している場合は、パラメーターが存在することさえ確認できません。
したがって、両方の組み合わせは良さそうです。
ユースケースによって異なります。ほとんどの場合、セッションの方が安全です。誰かがあなたのサーバーを危険にさらしてあなたのセッションデータを取得する可能性がある場合、あなたはさまざまなことを心配する必要があります。ただし、セッションデータを他の人が見ることができる場所に保存すると悪いでしょう;-)。
URL署名は、理論的にはブルートフォース攻撃を受ける可能性があります。パラメータはおそらく短く、予測できる場合もあるため、暗号化について知っている人に攻撃のポイントを与える可能性があります。ただし、これは簡単なことではありません。しかし、セキュリティがあなたにとって最優先の選択肢であるなら、私はこのデータがあなたのサーバーを離れることを許可しません。