我有一个HTML标记<textarea>$FOO</textarea>
,$FOO
变量将填充任意HTML和JavaScript内容,以便在textarea中显示和编辑。我需要什么样的“逃避”来申请$ FOO?
我首先想要逃避HTML,但这不起作用(因为我将不会显示$ FOO的原始HTML代码,而是转义的内容。这当然不是我想要的:我想要显示未转义的HTML / JS变量的内容......
是否无法在<textarea>
标记内显示HTML内容,还允许将其编辑为完整的HTML?
感谢 延
答案 0 :(得分:21)
我首先想要逃避HTML
是的,没错。 <textarea>
的内容与<span>
或<p>
等任何其他元素的内容没有区别:如果您想在其中放入一些文本,则必须HTML-escape {<
其中有1}}或&
个字符分别为<
和&
。
浏览器确实倾向于在<textarea>
中为您提供更多的故障标记余地,因为无效的未转义<
符号的后备是将它们渲染为文本而不是标记,但这并不是' t使它不那么错误或危险(对于XSS)。
但这没效果
请发布您所做的不起作用的内容。 HTML转义绝对是正确的。
答案 1 :(得分:2)
您需要在textarea
,至少&
,<
和{中character references(数字字符引用或实体引用)替换HTML的特殊字符。 {1}}。