安全地将HTML从用户加载到文本区域


safely load HTML from user into textarea

我在一个项目中使用TinyMCE 4,在这个项目中,我需要能够用通过POST提交的HTML预先填充文本区域(用于服务器端错误处理,而不删除所有工作)

<textarea name="demo"><?=$_POST['demo']?></textarea>

但是,当用户提交包含不匹配的<textarea></textarea>标记的HTML时,会发生什么呢?

有标准的方法来管理这种风险吗?

输出时在php中使用htmlspecialchars($_POST['demo'])

仅从用户输入中删除<textarea>标记。请使用正则表达式查看这篇文章。它告诉您如何仅删除某些标记(不像htmlentities),后者会删除所有标记。

使用xmp标记而不是textarea。它将把html显示为自己。

例如:http://dadinck.x10.mx/xmp.html

htmlentities函数将把每个html字符(如<)替换为一个正确显示但不会破坏html的字符。http://www.php.net/manual/en/function.htmlentities.php