安全地呈现存储的TinyMCE数据

时间:2013-10-30 12:41:02

标签: php html tinymce symfony-1.4

我们在通过TinyMCE编辑器安全发送和存储电子邮件时遇到了一些困难。

内容深深地嵌入在表格和div的层次结构中,并且看到TinyMCE如何习惯偶尔留下额外的内容,比如说

</table>

必然会给网站的html结构带来严重的不稳定性。

该网站正在运行PHP(Symfony 1.4)并支持jQuery。

现在,我完全意识到我可能会用错误的思维方式和工具来接近它,但我只是想找到一种方法:
陷阱HTML,防止包含PHP变量在标签层次结构中提供备用结束标记和关闭标记的HTML标记。

你会如何解决这个障碍?我知道

strip_tags($var)

PHP函数,但我希望,在安全性和稳定性允许的情况下,保持HTML标记的完整性,以便尽可能接近其预期的电子邮件。

1 个答案:

答案 0 :(得分:1)

解决此问题的常用方法是将文本存储在2个数据库列中(例如texttext_formatted)。

当您从WYSIWYG编辑器保存文本时,您应格式化文本并保存到text_formatted(使用一些自定义解析功能,应该关闭标签,删除一些字符等等。我认为,有一些开源解析函数)。

然后,在输出中,您应该使用格式化文本