Я разрабатываю веб-приложение на ASP.NET, и я получаю ввод текста от пользователей, а затем отображаю этот ввод на веб-сайте. При сохранении ввода в базу данных я не кодирую ввод и напрямую записываю их в БД.
Если ввод содержит «ввод», я не хочу терять разрывы строк. Поэтому я заменяю данные следующим образом: Replace("\r\n", "<br />
")
И чтобы предотвратить XSS-атаку перед отображением, я кодирую данные, используя функцию Microsoft.Security.Application.Encoder.HtmlEncode библиотеки Microsoft AntiXSS.
Эта функция также кодирует «<br/>
», и на экране у меня нет разрыва строки.
Если я сначала закодирую с помощью AntiXSS, а затем заменю «\r\n» на «<br/>
», я также не получу разрыва строки, поскольку AntiXSS, я думаю, удаляет «\r\n».
Если я использую Server.HtmlEncode, а затем заменяю "\r\n" на "<br/>
", тогда все в порядке. Но я хочу использовать библиотеку AntiXSS и не знаю, как этого добиться.
Есть ли способ распечатать разрывы строк с помощью функции AntiXSS HtmlEncode?
Спасибо
<br/>
закодирован, не можете ли вы просто заменить закодированный<br/>
декодированной версией? напримерReplace("<br/>","<br/>")
? - person Caleb Brinkman   schedule 02.10.2015