2009-06-02 13 views
10

script/sql injectionのようなものからの入力をサニタイズするために、徹底的にテストされた.NETライブラリがありますか?入力をサニタイズする.NETライブラリ?

+0

これは2つの異なる質問であるべきです – fretje

+5

@fretje、それは両方を行うライブラリがないことを既に知っているならば、2つの異なる質問です。 – DevinB

+0

SQLインジェクション攻撃に対するサニタイズ入力(通常はパラメータ化されたコマンドを使用してデータベースレベルで行われる)は、xss攻撃に対するサニタイズ入力とは異なる完全な野球場です(通常はデータベースに入力を保存する前に完了します)... – fretje

答えて

7

SQLインジェクションとクロスサイトスクリプティング(a.k.a. XSSまたはスクリプトインジェクション)は異なる問題です。

1)SQLインジェクションは非常に簡単で、常にパラメータ化されたクエリ(SQLParameter)を使用し、T-SQLストアドプロシージャ内でsp_exec @queryを絶対に実行しないようにしてください。 .Netパラメータ化されたクエリは、この2次注入に対して保護しません。

2)HTML文書にJavaScriptを挿入できる場所が非常に多いため、XSSは普遍的に緩和するのが難しいです。 AntiXSSを使用してユーザーデータをエンコードする際の推奨事項はすぐにあります。ユーザー・データを出力文書に挿入する前に、このライブラリーを使用してください。残念ながら、ASP.Netサーバーコントロールを使用している場合、すべてのデータをエンコードすると、二重エンコードと表示アーチファクトが発生する可能性があります。これは、一部のコントロールプロパティがデータをエンコードし、他のコントロールプロパティはエンコードしないために発生します。デフォルトでエンコードされたプロパティーについては、this tableを参照してください。エンコードしないプロパティに割り当てる前にAnti-XSSを使用してください。

5

SQLインジェクションを防ぐために、文字列のサニタイズを試みるのではなく、parameterised commandsを使用します。

8

私はMicrosoft AntiXSS libraryを使用します。無料で使いやすいです。

SQLインジェクションでは、私は常にパラメータを使用します。再び、彼らは使いやすいですし、私は特殊文字をエスケープしようとしません。あなたが私に尋ねるなら、それは災害のためのレシピです。

2

AntiXSSは、XSS攻撃を防止するために使用できます。

0

私はMS Anti XSSライブラリを使用しています。非常に便利で使いやすいです。それを自分で試してみてください。現在のバージョンは4.0です。

0

ASP.NET 4.5を使用している場合は、AntiXSS features that ship in the frameworkを使用できるようになりました。

これらは、ASP.NET 4.5に組み込まれている外部AntiXSSライブラリの一部である:

  • HtmlEncodeHtmlFormUrlEncode、およびHtmlAttributeEncode
  • XmlAttributeEncodeXmlEncode
  • UrlEncodeUrlPathEncode(新)
  • CssEncode
関連する問題