安全地将HTML从用户加载到textarea

时间:2014-04-21 20:53:41

标签: php html post

我在一个项目中使用TinyMCE 4,我需要能够使用通过POST提交的HTML预填充textarea(用于服务器端错误处理而不删除所有工作)我知道textarea工作主要类似于标签,因为内部的HTML不会被解析为DOM,因此大多数网站都会显示演示:

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

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

是否有管理此风险的标准方法?

4 个答案:

答案 0 :(得分:1)

在输出

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

答案 1 :(得分:0)

仅从用户输入中删除<textarea>标记。请使用正则表达式查看this帖子。它告诉您如何仅删除删除所有标记的某些标记(与htmlentities不同)。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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