Если вам нужно кодировать HTML-теги и показывать их в браузере , помните, что
<%= Server.HTMLEncode("The paragraph tag: <P>") %>
выдает следующий вывод:
The paragraph tag: <P>
, который будет отображаться в веб-браузере как:
The paragraph tag: <P>
Ваша пробная версия с Server.HTMLEncode не работает, так как она работает, когда данные находятся на сервере и должны быть закодированы перед отправкой в просмотры. В вашем примере данные хранятся в браузере, и запрос блокируется при проверке перед получением на сервере .
Если вы хотите, чтобы пользователь редактировал TextBox и вводил HTML-теги , вы можете отключить это с помощью
<%@ Page validateRequest="false" ...>
или в файле web.config для всего приложения:
<system.web>
<page validateRequest="false" />
</system.web>
Обратите внимание, что это свойство ValidateRequest не существует без
причина. Когда вы меняете значение по умолчанию, небезопасный ввод будет
принято. Из-за этого вам нужно проверить ввод каждого пользователя в
избегать межсайтовых скриптовых атак, таких как вставка вредоносных программ
JavaScript, ActiveX, Flash или HTML
Другим разумным решением является замена с помощью текста JavaScript, написанного пользователем , чтобы сделать его безопасным для проверки.
< tag>
вместо <tag>
считается безопасным!
function validateTxt() {
$("textarea, input[type='text']").change(function () {
html = $(this).val(); //get the value
//.replace("a" , "b") works only on first occurrence of "a"
html = html.replace(/< /g, "<"); //before: if there's space after < remove
html = html.replace(/</g, "< "); // add space after <
$(this).val(html); //set new value
});
}
$(document).ready(function () {
validateTxt();
});