保存由 tinyMCE、QuillJS 等文本编辑器生成的 HTML 代码会不会被黑客攻击?

can you get hacked by saving the HTML codes generated by texteditors like tinyMCE, QuillJS, etc.?

我希望有人能在关闭之前提供建议或提示,因为有人警告我这是一个主观问题。

我有自己的 PHP+SQL 框架,由 Slim 和 Eloquent 组成,并计划在其中集成一个论坛,并使其更加用户友好,我我计划在论坛发帖中添加免费的文本编辑器。

显然,这些文本编辑器通过 POST 发送 HTML 代码,我打算将这些代码保存在 MySQL 数据库中。而且由于它的 eloquent,我很清楚它已经处理了准备好的语句以避免注入。但是我不确定这是否足够安全,我正在浏览 phpBB,直到今天他们还没有任何漂亮的文本编辑器(或者尚未为 3.2 开发),我浏览到他们担心安全问题,我因为他们在那里是老手,所以更加紧张。

您可以通过这些简单的 HTML 代码进行注入吗?还有哪些其他攻击可以用来攻击我的系统?

谢谢!

只要您在插入 SQL 查询之前 escape 所有内容,数据库将是安全的...从最简单的 SQL 注入形式开始。

为了防止 JavaScript 注入,您必须在插入数据库之前清理服务器端的标记,方法是删除 <script> 标记。您可能还想删除 iframelink 和表单标签。

您还必须在客户端配置内容过滤。例如,TinyMCE 有 invalid_elements option,您可以在其中列出要删除的标签。

系统支持的功能越多,风险就越大,这是显而易见的。例如,黑客可能会上传一个名称包含 shell 表达式的文件,例如 $(rm -rf /www/).png。因此,如果服务器上有人不小心对此类文件名运行 eval,服务器将被黑客入侵。另一个例子是上传一个看起来像和图像的脚本。

我想,列出更多可能的入侵系统的方法没有意义。您的问题的答案是:是的,系统可以通过使用流行的 Web 编辑器进行破解。因此,我建议尽量减少向用户公开的功能数量,并彻底清理用户输入,尤其是在服务器端