安全的WYSIWYG选项

时间:2014-02-18 17:31:21

标签: php mysql text editor wysiwyg

我正在构建一个应用程序,要求用户输入大块文本,例如一次输入段落。我安装了一个编辑器(CKeditor)为用户提供了一个很好的界面来编辑他们的文本等。问题是我在插入数据库之前无法清理输入因为它删除了所有的HTML并且文本丢失了段落和其他样式。

有没有办法安全地存储数据并保持基本样式,如段落甚至文本颜色?

1 个答案:

答案 0 :(得分:0)

这就是我所做的。我必须使用并构建自定义公告板和论坛系统。当你有人试图放置风格化的内容,图像,视频,表情符号等时......你需要某种形式的内容放置,同时还要对帖子进行消毒。

你有一些选择。我的建议是找一个有BBCode插件的编辑器。当帖子进入您的数据库时,任何具有HTML元素的内容都将显示在括号中(即; [])而不是打开/关闭标记。因此,如果您想要粗体某事,可以使用[B]粗体[/ B]。然后,您可以执行一个简单的函数来剥离这些BBCode元素,并用适当的HTML代码替换它们。

你可以做的另一件事,我不推荐,但看到发生的是str_replace所有打开和关闭标签及其html实体,当你将它们插入数据库,然后str_replace所有相应的html实体到在显示帖子时打开和关闭标签。

我推荐BBCode或至少某种降价的原因是因为你可以完全关闭用户使用该帖子攻击你的能力,同时让他们为自己的帖子设置样式。

HTML BBCode Parser (Pear Package) - 如果您使用BBCode路线,这将帮助您。

CKEditor BBCode Plugin - 你可以将它添加到你的CKEditor WYSIWYG并随之运行。