XSSとその対処方法に関するSOに関する多くの投稿を読みました。一般に、コンセンサスはブラックリストよりもホワイトリストであり、正規表現の使用を避けます(処理するにはバリアントが多すぎます)。
ASP.NetMVC3アプリケーションに取り組んでいます。ユーザーエントリからHTMLを表示できるようにする必要があります(例:<strong>、<ul>、<li>など)が、XSSリスクは必要ありません。
Nuget経由でAntiXSSパッケージを使用しています。私のモデルでは、
[AllowHtml]
public string UserDetails{ get; set; }
私の見解では、TinyMCEをテキストエリアに接続しています。
私のコントローラーでは、ビューから投稿を取得してサニタイズします。
using Microsoft.Security.Application;
...
string SanitizedDetails = Sanitizer.GetSafeHtmlFragment(model.UserDetails);
私の質問:私はそれを正しくしましたか?私はほとんどのXSSの問題から保護されていますか、それとも間違ったツリーを吠えていますか?