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