web-dev-qa-db-ja.com

ASP.Net CoreのAntiXSS

Microsoft Web Protection Library(AntiXSS) はサポート終了になりました。このページには、「。NET 4.0では、AntiXSSのバージョンがフレームワークに含まれており、構成によって有効にできました。ASP.NETv5では、ホワイトリストベースのエンコーダーが唯一のエンコーダーになります。」

私はクラシックなクロスサイトスクリプティングシナリオを持っています。ASP.NetCoreソリューションでは、ユーザーはWYSIWYG htmlエディターを使用してテキストを編集できます。結果は他の人が見ることができるように表示されます。つまり、ユーザーがテキストを保存するときに送信するデータにJavaScriptを挿入すると、他のユーザーがページにアクセスしたときにこのコードが実行される可能性があります。

特定のHTMLコード(安全なコード)をホワイトリストに登録できるようにしたいのですが、不正なコードは除外します。

どうすればよいですか? ASP.Net Core RC2でメソッドを見つけることができません。このホワイトリストエンコーダーはどこにありますか?どうやって呼び出すのですか?たとえば、JSON WebAPIを介して返される出力をクリーンアップする必要があります。

12
Tedd Hansen

いい質問ですね。私が指摘したいのは、私たち自身の消毒剤を作ってはいけないということです。彼らは正しく理解するのが非常に難しい。評判の良い作者によって構築および保守されているライブラリを使用する方がはるかに優れています。

OWASPから :「OWASPは、セキュリティに重点を置いたエンコーディングライブラリを使用して、これらのルールが適切に実装されていることを確認することを推奨しています。」

.NET Frameworkを使用している場合でも、このライブラリが適している可能性があります。 https://docs.Microsoft.com/en-us/dotnet/api/system.web.security.antixss.antixssencoder?view= netframework-4.8

.NET Coreの場合、上記でコメントしたSystem.Text.Encodingsライブラリも役立つ場合があります。 https://docs.Microsoft.com/en-us/aspnet/core/security/cross-site-scripting?view=aspnetcore-2.2#accessing-encoders-in-code

1
DeLucas