处理HTML所见即所得编辑器


Handling a HTML WYSIWYG Editor

我使用contentteditable ="true"构造了一个简单、轻量级的所见即所得HTML编辑器,通过javascript插入HTML标签。

这一切都很好,除了我不知道提交、验证和插入输入到数据库的最佳方式。我担心有人可能会插入他们自己的标记并弄乱输出。

到目前为止,我最好的想法是在将输入插入数据库之前,用PHP将所有有效标记转换为BBCode,然后清除所有其他标记。这是传统吗?

谢谢!

是的。另一种方法是转换所见即所得编辑器中已经存在的标记。无论哪种方式都不能帮助您解决"永远不要信任用户输入数据"的问题,因此您必须验证该代码。

您可能希望通过HTML净化器之类的东西运行它,以确保您剥离任何恶意代码。

我不确定HTML净化器是否已经做到了这一点,但您也希望使用htmlentitieshtmlspecialchars在存储数据之前剥离任何与数据库攻击相关的代码。