さまざまなインジェクション型の攻撃について読んでいますが、これらの脆弱性を取り除く最善の方法は、すべてのユーザー入力をエンコードして、一部の文字を削除/他の文字 (< > ; など) に置き換えることです。
ここで私の最善の策は何ですか?これを手伝ってくれる素敵なライブラリはありますか?または、潜在的な脆弱性を見つけるのに役立つものはありますか? - それとも、正規表現が私の最善の策ですか? :)
どうもありがとう
さまざまなインジェクション型の攻撃について読んでいますが、これらの脆弱性を取り除く最善の方法は、すべてのユーザー入力をエンコードして、一部の文字を削除/他の文字 (< > ; など) に置き換えることです。
ここで私の最善の策は何ですか?これを手伝ってくれる素敵なライブラリはありますか?または、潜在的な脆弱性を見つけるのに役立つものはありますか? - それとも、正規表現が私の最善の策ですか? :)
どうもありがとう
AntiXSS ライブラリを見てください。
Server
ASP.NETPage
インスタンス ( Page
ie経由でアクセス可能this
) は、XSS 攻撃を防ぐのに十分なメソッドを提供しますHtmlEncode()
。
デフォルトではweb.config
、ページ ディレクティブまたはページ ディレクティブを介して明示的に許可しない限り、ASP.NET は疑わしい入力をエラー ページで拒否します。
XSS 攻撃を防ぐために Java バージョンの ESAPI を使用したので、これらのうち、私は ESAPI に投票します。データの単純な HTML エンコーディングでは XSS を防止できないことに注意してください。データのコンテキストも重要です。JavaScript を動的に生成し、サーバーで応答に挿入する場合は、JavaScript をエスケープする必要があります。
クロスサイトスクリプティング保護には、次の3つの優れた選択肢があります。
この順番でやってみます。
最近私は ESAPI.NET を見てきましたが、プロジェクトは不完全で、おそらく非アクティブであるように見えます - 特に Java パッケージと比較して。
Anti-XSS は ESAPI の範囲のサブセットのみをカバーし、実際、ESAPI.NET はエンコーディングに (最新ではありませんが) AntiXSS を使用します。
ESAPI.NET の有用性を証明するコメントは役に立ちます。