Как кодировать Html, но сохранить некоторые элементы, такие как тег ‹span› в ASP.NET?

Я пишу приложение, в котором мы используем службу, которая возвращает результаты. В результате некоторые элементы HTML должны быть напечатаны как есть.

Пример результата:
{values ="Lorem impsum loren ipsum <span class=\"boldc\">bold value </span> lorenipsum .....}

Теперь это должно отображаться на странице ASP.NET. Если я кодирую HTML, диапазон кодируется, я не могу выделить элементы жирным шрифтом по желанию.

@Html.Raw(Message) - это работает, но открывает все уязвимости и опасно.

Каков наилучший способ справиться с этим сценарием? Есть ли способ, которым я могу напечатать эти символы HTML; еще есть безопасность?


person GuruC    schedule 25.07.2014    source источник
comment
Это похоже на некоторые из проблем, которые возникли при первоначальном написании SO...   -  person Matthew Haugen    schedule 25.07.2014


Ответы (1)


К сожалению нет. Вы не можете добиться отображения декодированного HTML, не подвергаясь воздействию каких-либо других уязвимостей с поведением по умолчанию. Вы либо декодируете, либо кодируете эту html-строку. Однако вы можете выполнить собственный синтаксический анализ после декодирования HTML, чтобы отключить или, что более вероятно, удалить любую опасную разметку, такую ​​как теги script, iframe, form и т. д.

person Leo    schedule 25.07.2014