当我在TextArea中显示JavaScript时,为什么会执行?

问题描述

| 当有“ 0”个标签作为Textarea值时,它将执行脚本。 有办法防止这种情况吗?     

解决方法

您需要对标签进行编码:
<textarea>
&lt;script type=&quot;text/javascript&quot;&gt;&lt/script&gt;
</textarea>
在PHP中,您可以使用
htmlentities()
进行此操作。     ,因为TextArea(
<textarea>...</textarea>
)是一个可以在其中包含内部节点的节点。内部节点仍然有效,因此浏览器将解释“ 4”节点并运行代码。 这是一个很好的理由,为什么您必须始终验证用户输入和发布到服务器的内容。如果稍后显示该输入,则该输入可以执行,就像您自己插入script标签一样。 要停止它,您需要对标签
< = &lt; and > = &gt;
进行编码 一个类似的概念是使用无效的html节点,例如
<myInvalidTag><script></script></myInvalidTag>
。浏览器仍将在其中执行代码。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...