@alesto

Как безопасно вывести пользовательский html в asp mvc?

Есть некий проект на котором пользователи вводят html используя wysiwyg , затем этот html нужно отобразить пользователям. Как правильно отчистить html от xss, флеша айфреймов, javascript и не закрытых тегов?
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
При такой постановке задачи - вам важнее контролировать ВВОД данных, а не ВЫВОД. В библиотеках ASP.NET , насколько мне известно, нет методов типа .RemovePotentialIssuesFromHtml() - соответственно определите что пользователь может вводить, а что не может. Их и удаляйте при сохранении, или уведомите клиента о том что он ввел потенциально опасные конструкции.
Ответ написан
Можно использовать библиотеку HtmlSanitizer
https://github.com/mganss/HtmlSanitizer
Она поможет Вам удалить небезопасные HTML теги.

Если же Вы не хотите удалять введенные пользователями теги то для поля поставьте атрибут AllowHtmlAttribute
public class BlogEntry {
    public int UserId {get;set;}
    [AllowHtml] 
    public string BlogText {get;set;}
 }

А при выводе на форму кодируйте значение например с помощью AntiXssEncoder
https://msdn.microsoft.com/ru-ru/library/system.we...
www.codeguru.com/csharp/.net/net_asp/preventing-cr...
Или кодируйте с помощью JS
weblogs.asp.net/jongalloway/preventing-javascript-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы