Як ви вже згадували у відповіді @Developer, я, мабуть, кодував HTML на введенні користувача. Якщо ви переживаєте за XSS, вам, ймовірно, ніколи не потрібні дані користувача у його первісному вигляді, тому ви можете також уникнути цього (і замінити пробіли та нові рядки, поки ви знаходитесь у ньому).
Зауважте, що біг при введенні означає, що вам слід або використовувати @ Html.Raw, або створити MvcHtmlString для візуалізації цього конкретного вводу.
Ви також можете спробувати
System.Security.SecurityElement.Escape(userInput)
але я думаю, що це не уникне місця. Тож у такому випадку я пропоную просто зробити .NET
System.Security.SecurityElement.Escape(userInput).Replace(" ", " ").Replace("\n", "<br>")
на введення користувача. І якщо ви хочете заглибитися в зручність використання, можливо, ви можете зробити XML-аналіз синтаксису вводу користувача (або грати з регулярними виразами), щоб дозволити лише заздалегідь заданий набір тегів. Наприклад, дозволити
<p>, <span>, <strong>
... але не дозволяти
<script> or <iframe>