Я работаю с веб-приложением ASP.NET MVC и хочу предотвратить инъекции xss в текстовые поля.Таким образом, я проверяю, что все строковые значения, передаваемые для просмотра модели, закодированы в HTML.В веб-приложении я использую элемент управления планировщика Kendo UI, который использует пользовательское всплывающее окно редактирования события.В модели представления событий у меня есть свойство «Описание», которое должно связываться с текстовой областью описания с помощью атрибута привязки данных kendo при всплывающем окне события, как показано в коде ниже.
<div class="control">
@Html.TextAreaFor(x => x.Description, new
{
data_bind = "value:description"
})
</div>
Итак, в разметке это выглядит так:
<textarea class="k-textbox" cols="20" data-bind="value:description" id="Description" name="Description" rows="2"></textarea>
Однако текст отображается в текстовой области, как кодированный HTML.Я пытаюсь решить эту проблему.
Чтобы показать текст, декодированный в формате HTML, я попытался привязать данные к текстовой области следующим образом:
<div class="control">
@Html.TextAreaFor(x => x.Description, new
{
data_bind = "html:description"
})
</div>
В разметке это выглядит так:
<textarea class="k-textbox" cols="20" data-bind="html:description,value:Description" id="Description" name="Description" rows="2">&lt;script&gt;console.log(this)&lt;/script&gt;</textarea>
На самом деле текст не виден в текстовой области, а HTML-строка остается закодированной в теге textarea, поэтому я предполагаю, что привязка данных не работает должным образом.
Я ожидаю, что data_bind = "html: description" установит innerHTML textarea для отображения HTML-декодированного текста, но на самом деле я получаю либо HTML-кодированный текст, либо вообще никакого текста.Пожалуйста, помогите.