2017-01-28 4 views
0

私はそのアプリケーションでC#mvcを使用しています。私は1つのTextBoxに読み取り専用プロパティを持ち、正規表現を使用して特殊文字を制限しています。それは入力を(読み込みなしで)得るのにうまくいくでしょうが、その時の1ページで詳細を見ると、TextBoxは読み込み専用になります。inspect要素によってchagedされる入力を検証する方法は?

私は例外はそのフィールドのエラーメッセージが表示されて

を発生させます、私は

[RegularExpression(@"^[a-zA-Z0-9\s\-]+$", ErrorMessage = "Special Characters are not allowed")] 

答えて

1

を検証するために、このコードを使用してい要素を検査使用して値を変更した場合、私は読み取り専用のプロパティと1つのTextBoxを持っています特殊文字を制限する正規表現を使用しています。それは入力を(読み込みなしで)得るのにうまくいくでしょうが、その時の1ページで詳細を見ると、TextBoxは読み込み専用になります。

私は例外はそのフィールドのエラーメッセージが表示されて

を発生させますつまり、ユーザーがフォームに入力されたときに正規表現が正常に動作していると、それが唯一の許可された要素を検査使用して値を変更した場合正規表現で許可される文字。別のページでは、情報を表示しますが、閲覧目的(読み取り専用)のため、ユーザーはブラウザのdevloperツール(inspect要素)を使用して読み取り専用フィールドを変更することができます。したがって、正規表現ではそれを防ぐ必要があります。サーバー

あなたはWebフォームで提出された入力を信用してはいけません上の

常に検証。ユーザーがフィールドの編集を許可している最初のケースでも、ユーザーは正規表現をオフにすることができます。このため、サーバーサイドのコードで再度検証する必要があります。

2番目のケースでは、単純に情報を表示しているときに、ユーザーが場面(開発者用ツール)に入ってフィールドを変更した場合、ユーザーはそれを送信できないので、心配する必要はありません。しかし、変更が送信可能な別のアイテムに影響する場合は、サーバー側でその変更を検証する必要があります。

あなたは常に常にを使用すると、クライアント側でそれを既に確認している場合でも、サーバー側のWebフォームの入力をチェックする必要があります。ユーザーが精通している場合、ユーザーはドロップダウンにさらにオプションを追加し、アイテムを選択してフォームを送信することもできます。したがって、それを信頼しないでください。

関連する問題