ユーザー入力の検証は Web フォーム アプリケーションのどこに配置しますか?
- 表示: JavaScript クライアント側
- コントローラー: サーバー側言語 (C#...)
- モデル: データベース (ストアド プロシージャまたは依存関係)
各レベルで必要な検証があると思います:
- ユーザーが正しい値を入力したか
- 日付は実際の日付、数字は実際の数字です...
- 1. のすべてのチェックに加えて、悪意のある攻撃 (IE XSS または SQL インジェクション) のチェックをもう一度実行します。
- 1. で行われるチェックは、主に、ユーザーがミスをしたときにサーバーのラウンド トリップを回避するためのものです。
- それらはクライアント側で JavaScript で実行されるため、それらが実行されたことを信頼することはできません。これらの値を再度検証すると、一部の悪意のある攻撃が阻止されます。
- 依存関係が満たされているか (つまり、ユーザーが有効な質問にコメントを追加したか)
- 優れたインターフェースは、これらの違反を非常に困難にします。ここで何かがキャッチされた場合、何かが非常にうまくいかなかった.
[この回答に触発された]