2016-04-30 15 views
0

我希望有人能在这个关闭之前提供建议或提示,因为我被告知这是一个主观问题。你可以通过保存由tinyMCE,QuillJS等文本编辑器生成的HTML代码来入侵吗?

我有我自己的PHP + SQL框架做出了苗条和雄辩,并计划在其中集成一个论坛,并使其更加用户友好,我打算在论坛发布添加免费文本编辑器。

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

你能通过这些简单的HTML代码注入吗?还有哪些其他攻击可以用于我的系统?

谢谢!

+1

大多数富文本编辑器应该为您处理这个问题。但你应该阅读你打算使用的特定文档 – 2016-04-30 03:19:52

+1

@Dagon Umm,不是真的。即使他们这样做,您也需要*来清理输入服务器端。接受和消毒用户提供的HTML是非常棘手的业务。许多网络应用程序不这样做,而是使用诸如减价之类的东西。 –

+1

他说他已经使用了准备好的陈述..所以它不是在这一点上它的问题 - 以及我读这个问题的方式。 – 2016-04-30 03:39:11

回答

1

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

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

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

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

我想,列出更多可能的方式来破解系统没有意义。您的问题的答案是:是的,系统可以通过使用流行的Web编辑器进行黑客攻击。所以我建议尽量减少暴露给用户的功能数量,并彻底清理用户输入,,特别是在服务器端

+0

非常感谢,这会给我动力。 –

相关问题