0

みんな私は質問があります。

私は現在、完了するまでに5つのステップがあるウィザードを構築しています。

ユーザーは、エントリIDを生成する最初のステップから開始します。そこから、次のようにURLにIDを渡し始めます。

host.com/{controller}/{view}/{id}

これは、ステップ1の後の私のURLがどのように見えるかです-------現在ビューステップ2でid=120を渡します

host.com/{controller}/step2/120

ご存知のように、誰でもIDを変更して他のユーザーのエントリに影響を与える可能性があるため、これは安全ではありません。多くの場合、認証されたユーザーが各ビューでアクセスしようとしている必要のあるエントリの所有権を持っているかどうかを読み取ることで、すぐに解決できます。

さて、私の質問は...これを行うためのより良い方法はありますか?今後の作業のためのヒントはありますか?私がしていることは何ですか?(専門家のオーンサーのために祈る初心者の疑い)乾杯

4

2 に答える 2

1

ユーザーがURLのIDを変更することを本当に心配している場合は、「isOwnedBy」のような機能を追加するために追加の時間を費やす必要があります。

追加のセキュリティ対策として、フォーム内の非表示の変数を介して渡すことができるため、少なくとも変更も簡単ではありません。

編集:アイデアを暗号化するという@LeffeBruneの提案も気に入っています。ただし、ユーザーがオブジェクトを所有していることを確認するために、関数に対して検証を実行することをお勧めします。それは良い習慣です。

于 2012-09-13T16:19:24.343 に答える
1

...認証されたユーザーが各ビューでアクセスしようとしている必要のあるエントリの所有権を持っているかどうかを読み取ることで、すぐに解決できます。

はい、そうです。そこから始めるべきです。

これがあなたができる他のいくつかのことです:

  1. 代わりにエントリIDをGUIDにして、ハッカーになる可能性のある人がエントリIDを推測しようとしないようにすることができます。
  2. 機密データにGETを使用することは悪い考えであるため、endyourifが示唆するように、代わりに非表示フィールドを使用してエントリIDを渡すことができます。
于 2012-09-13T17:55:31.613 に答える