MS SQL 2008:これを検索してみましたが、実際には答えが見つかりませんでした。データベースに保存する前に、すべてのユーザー入力をサニタイズして検証する必要があることは知っていますが、データベースでサイズとタイプによって制限されているフィールドにもそれが必要かどうか疑問に思っています。
たとえば、BIT タイプで 1 文字しか使用できないフィールドがいくつかある場合や、外部キーが指定されている INT フィールドがあるため、外部キーのみを保存することができます。
したがって、ユーザーに別のユーザーにメッセージを送信させるフォームでは、
- ラジオ ボタン BIT (連絡するはい/いいえ)
- 隠しフィールド (#userid# に送信) を使用して、ユーザーの ID をテーブルに配置します。
- DateTime フィールド (この日付に送信されたメッセージ) は自動的に入力されますが、ここに入れています。たとえば、ユーザーに時刻を設定させたとしましょう。
- VarChar (最大サイズ 2)、これは私が疑問に思っていることですが、2 つに制限されているだけでも、悪意のあるものを挿入できるのではないでしょうか?
これらのフィールドをデータベースに送信する前にサニタイズする必要がありますか、それともデータベースが処理して入力を拒否しますか?
私がこのすべてを尋ねている理由は、一般的に受け入れられているものと、パフォーマンス上の理由を見つけるためです。
ありがとう。