我使用 contentEditable="true" 构建了一个简单、轻量级的 WYSIWYG HTML 编辑器,通过 javascript 插入 HTML 标签。
一切都很好,除了我不知道提交、验证和将输入插入数据库的最佳方式。我担心有人可能会插入自己的标签并弄乱输出。
到目前为止,我最好的想法是在将输入插入 batabase 之前使用 PHP 将所有有效标签转换为 BBCode,然后清除所有其他标签。这是传统的吗?
谢谢!
您可能希望通过HTML Purifier之类的工具来运行它,以确保去除任何恶意代码。
我不确定 HTML Purifier 是否已经这样做了,但您还想在存储数据之前使用htmlentities
或htmlspecialchars
删除任何与数据库攻击相关的代码。
是的。另一种方法是在您的所见即所得编辑器中转换您的标签。无论哪种方式都无法帮助您解决“从不信任用户输入数据”,因此无论如何您都必须验证该代码。您必须假设它可能已损坏。