HTML: <textarea> -Tag: Как правильно удалить содержимое HTML и JavaScript, отображаемое там?
У меня есть тег HTML <textarea>$FOO</textarea>
, а переменная $FOO
будет заполнена произвольным содержимым HTML и JavaScript, которое будет отображаться и редактироваться в текстовом поле. Какое "ускользание" я могу применить к $FOO?
Я сначала попытался убежать от него, но это не сработало (так как тогда мне будет показан не оригинальный HTML-код $FOO, а скорее экранированный контент. Это, конечно, не то, что я хочу: хочу показать unescaped HTML/JS Содержимое переменной...
Невозможно ли отобразить содержимое HTML в теге <textarea>
, а также разрешить его редактирование как полный HTML?
спасибо
Jens
Ответы
Ответ 1
Я первый раз убежал от него HTML
Да, это правильно. Содержимое <textarea>
ничем не отличается от содержимого любого другого элемента, такого как <span>
или <p>
: если вы хотите поместить некоторый текст внутри, вы должны вывести HTML-символы из любых символов <
или &
в нем <
и &
соответственно.
Браузеры, как правило, дают вам больше возможностей с разметкой разломов в <textarea>
s, в том, что резервные копии для недопустимых неэкранированных символов <
должны отображать их как текст вместо тегов, но это не делает его менее ошибочным или опасным (для XSS).
но это не сработало
Пожалуйста, напишите, что вы сделали, что не сработало. HTML-экранирование, безусловно, правильное.
Ответ 2
Вам нужно заменить специальный символ HTML символьные ссылки (или числовые ссылки на символы или ссылки на сущности), в textarea
, не менее &
, <
и >
.