0

次のように、asp.net でアプリケーションをプログラムし、いくつかのページで「respons.redirect」を使用します。

Response.Redirect(string.Format("~/*****/****.aspx?ID={0}", ID));

ユーザーがこのコードを実行すると、正しいページにリダイレクトされ、すべて問題ありません。ブラウザーのアドレスにこのリダイレクト リンクが表示されます。

http://localhost:1852/Jornal/Editor/ReviewerEmail.aspx?ID=1030

ID を手動で変更し、ID が正しい場合、許可なく他のデータにアクセスできます。どうすればこの問題を回避できますか? (私はセッションを使用しません) 助けてください

4

2 に答える 2

3

アクセス制御を使用する必要があります。

データを表示するときはいつでも、現在ログインしているユーザーがそのデータにアクセスできるかどうかを確認する必要があります。

明らかに、攻撃者が他人であると主張できないように、現在ログインしているユーザーを追跡する必要もあります。
これを行うには、ASP.Net の組み込みメンバーシップ システムを使用します。

于 2012-12-17T18:23:06.270 に答える
3

ID を公開する必要があり、アクセス制御が問題を解決できない場合。

次に、その ID のハッシュである 2 番目のパラメーターを追加することをお勧めします。ID パラメータを改ざんすると、ID とハッシュが一致しなくなります

http://msdn.microsoft.com/en-us/library/system.security.cryptography.sha256.aspx

また、ID パラメータを GUID などの「推測しにくい」ID に変更します。

于 2012-12-17T18:38:43.280 に答える