你可以通过保存由tinyMCE,QuillJS等文本人生成的HTML代码来攻击你吗?

时间:2016-04-30 03:07:15

标签: php mysql rich-text-editor

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

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

显然,这些发短信通过POST发送HTML代码,并且我计划将它们保存在MySQL数据库中。由于它的雄辩,我完全理解它已经处理了准备好的声明,以避免注入。但是我不确定这是否足够安全,我正在浏览phpBB并且他们没有任何漂亮的文本编辑器直到今天(或者还没有开发3.2)并且我浏览他们关注安全性,我更加紧张,因为他们是那里的老将。

您可以通过这些简单的HTML代码注入吗?可以对我的系统使用哪些其他攻击?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

系统支持的功能越多,风险就越明显。例如,黑客可以上传具有包含shell表达式(例如$(rm -rf /www/).png)的名称的文件。因此,如果服务器上的某个人意外地在这种文件名上运行eval,服务器将被黑客入侵。另一个例子是上传一个看起来像和图像的脚本。

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