Я прочитал множество сообщений на SO о XSS и о том, как с этим бороться. Как правило, консенсус состоит в том, чтобы использовать белый список вместо черного и избегать использования регулярных выражений (слишком много вариантов, с которыми приходится иметь дело).
Я работаю над приложением ASP.Net MVC3. Мне нужно иметь возможность отображать HTML из пользовательской записи (например, , ,
Я использую пакет AntiXSS через Nuget. В моей модели у меня есть
[AllowHtml]
public string UserDetails{ get; set; }
На мой взгляд, TinyMCE подключен к текстовой области.
В своем контроллере я получаю сообщение из представления и очищаю его:
using Microsoft.Security.Application;
...
string SanitizedDetails = Sanitizer.GetSafeHtmlFragment(model.UserDetails);
Мой вопрос: правильно ли я сделал? Защищен ли я от большинства XSS-проблем или я ошибаюсь?