【问题标题】:does <textarea> auto-encode inner html?<textarea> 会自动编码内部 html 吗?
【发布时间】:2011-11-18 16:12:01
【问题描述】:

我试图在&lt;textarea&gt;&lt;/textarea&gt; 标签之间打印一些文本,但我注意到如果我输入一些字符,如&amp;lt;&gt;,textarea 会自动将它们转换为&amp;lt; 和@ 987654326@.

例子:

&lt;textarea&gt;&lt;script&gt;&lt;/textarea&gt;

将生成此 HTML

&lt;textarea&gt;&amp;lt;script&amp;gt;&lt;/textarea&gt;

你能解释一下为什么会这样吗?

在此先感谢,任何帮助表示赞赏,最好的问候。

【问题讨论】:

  • "...会生成这个 HTML ..." 怎么样?服务器端还是客户端?
  • 我的意思的输出是原始 html,从浏览器的“查看 html 源代码”选项可以看出,在客户端。

标签: html textarea


【解决方案1】:

它不会转义内容。 HTML 源代码保持完全相同。它只是能够按原样显示内容,我猜这是&lt;textarea&gt;标签的要求。

【讨论】:

  • 感谢 cherouvim 的回复。您知道是否有办法按原样输出&amp;lt;&amp;gt;(而不是&amp;lt;&amp;gt;)?我正在研究 xss 攻击,我正在寻找一种简单的方法来在该文本区域中注入类似 的东西。我也尝试了 %3c 和 %3e,但没有成功。再次感谢,最好的问候
【解决方案2】:

dom 元素应该具有如下属性:

innerHTML = '&lt;script&gt;'

innerText = '<script>'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多