TinyMCE, AntiXSS, MVC3 и GetSafeHtmlFragment

Я прочитал множество сообщений на SO о XSS и о том, как с этим бороться. Как правило, консенсус состоит в том, чтобы использовать белый список вместо черного и избегать использования регулярных выражений (слишком много вариантов, с которыми приходится иметь дело).

Я работаю над приложением ASP.Net MVC3. Мне нужно иметь возможность отображать HTML из пользовательской записи (например, ,

    ,
  • и т. д.), но я не хочу никаких рисков XSS.

    Я использую пакет AntiXSS через Nuget. В моей модели у меня есть

    [AllowHtml]
    public string UserDetails{ get; set; }
    

    На мой взгляд, TinyMCE подключен к текстовой области.

    В своем контроллере я получаю сообщение из представления и очищаю его:

    using Microsoft.Security.Application;
    ...
    string SanitizedDetails = Sanitizer.GetSafeHtmlFragment(model.UserDetails);
    

    Мой вопрос: правильно ли я сделал? Защищен ли я от большинства XSS-проблем или я ошибаюсь?

6
задан Mike Smith 4 June 2012 в 01:39
поделиться