サービスレイヤーを備えたMVCアプリがあり、すべての入力を狂わずにサニタイズする方法を見つけようとしています。
フィールド長、データ型、およびその他の検証は、クライアントとモデル (EF5) の両方で処理されてい ます。
私が今処理しようとしているのは、SQL インジェクションと XSS を防ぐことです。入力の 1 つにマークアップを貼り付けることで、アプリケーションを壊すことができました。
例えば:
<textarea data-bind="value: aboutMe">@Model.AboutMe </textarea>
AboutMe にスクリプト タグを保存すると、次のようになります。
<script type="text/javascript">alert("hey")</script>
不正な文字による改ページ:
Uncaught SyntaxError: Unexpected token ILLEGAL
すべての入力をチェリーピックして、送信されたものからすべてのブラケットを削除するある種の SanitizeText() 関数でラップするだけでよいと考えていますが、これは安っぽくて退屈で、SQL インジェクションに対処していません。
これについての適切な方法は何ですか?