Есть ли javascript-эквивалент htmlencode / htmldecode от asp.net? - PullRequest
4 голосов
/ 11 октября 2010

Проблема в следующем:

У вас есть текстовое поле, вы набираете какой-то текст, отправляете его на сервер.На другой странице это значение извлекается и отображается на экране в текстовом поле и метке.

Важно остановить атаки с использованием сценариев, и asp.net не позволит вам отправлять небезопасный код, поэтому при отправке вам JavaScriptзамените <на <code>&lt; и то же самое для>

Когда значения будут получены с сервера, они вернутся с &lt; и &gt;, что хорошо для отображения в метке, но при установкев текстовое поле они должны быть заменены обратно на <и>

. Данные должны быть надежно сохранены в базе данных, так как другие люди могут использовать этот контент.С точки зрения безопасности я хотел бы вызвать htmlencode и сохранить его.Именно этот кодированный html я хотел бы отобразить в ярлыке на клиенте, но декодированную версию я бы хотел отобразить в текстовом поле.

Итак, мне нужно решение htmldecode в javascript.htmlencode / decode заменяет больше, чем просто <>, и без определенного списка я не могу создать свой собственный метод.Есть ли какое-то решение?

1 Ответ

4 голосов
/ 11 октября 2010

Вместо того, чтобы пытаться превратить строку текста в HTML, а затем добавить ее в документ с помощью innerHTML; используйте стандартные методы DOM.

myElement.appendChild(
    document.createTextNode(myString)
);
...