2010-12-13 13 views
0

プロジェクトタイプはMVC2です。私はpage1を持っているとしましょう。成功した後には、somethinkを行に書き込み、新しい挿入行IDを取得して別のページにリダイレクトし、ローIDをパラメータとして送信します。ユーザーはクエリーストリングでこのパラメーターを見ることができます。それを変更することができます。私はそれがいくつかの状況(ページ)で問題だと思う。私はそれに隠れた入力値を使用し、隠し入力値を持つクエリ文字列からパラメータをチェックした後に隠れた入力を使用します。それらが等しくない場合は、ログに書き込み、エラーページにリダイレクトします。私の道は正しいのですか?または良い方法を持っている。このようなIDを公開asp.net MVC QueryString

おかげで...

答えて

3

はかなり標準であり、特定の項目の作業のブラウザのブックマークをすることができますものです。あなたの仕事は、ユーザーができるはずのレコードを見て変更できることを保証することです。

ユーザーがURLハッキングを行い、閲覧または変更が許可されていないアイテムのURLを入力すると、アプリに応じて親ページに戻すか、Access Deniedメッセージを返すことができます/コンテキスト。

秘密のフォームパラメータを含め、最終行はユーザーの入力を信頼することはありません。

+0

はい私はすべてのテーブルにフィールドを追加しました。このフィールドにはユーザーが持つ価値があります。ブランチ952200に登録されているユーザーがthis.Field.IsEqual(952000)の行のみを表示できるかどうかを示します。やったよ。あなたはすべての操作で私はユーザーがこの行を変更できるかどうかを確認する必要があります。はい? – AEMLoviji

+0

偉大な答え。 Askerとして隠されたフィールドを持つことの問題は、ユーザーがそれを変更することもできるので、これはRedが言ったことに戻ります:ユーザーの入力を信用しないこと。 –

+0

あなたは、最初に私はこの行を編集することができますかどうかをチェックする必要があります編集で言う。成功後DBに保存します。私は正しいですよ? – AEMLoviji

関連する問題