1

我创建了一个站点。在本站有上传图片的能力。我读了一篇 php 文章,攻击者可以在 GIF 图像中间插入 PHP 代码,然后将这个“邪恶”图像上传到网站上,然后该网站可能会针对安全漏洞开放,有没有朋友可以给出一个想法来抵抗这种类型的攻击 ..

4

3 回答 3

5

此链接详细解释了如何做到这一点:

http://php.webtutor.pl/en/2011/05/13/php-code-injection-a-simple-virus-written-in-php-and-carried-in-a-jpeg-image/

在那篇文章中我要说的最重要的一点是不including上传requiring文件。例如,如果您正在上传图片,您很可能只需在 html 中显示它们而不是将它们包含在脚本中即可获得所需的功能。这将防止它们内部的任何恶意代码被执行。

如果您正在寻找有关保护文件上传的更多信息,这篇文章也很好:http ://shiflett.org/articles/file-uploads

作者还有一本关于 PHP 安全性的书也非常有用。

这个关于 SO 的问题也很有用:https ://stackoverflow.com/a/4167797/1324019

编辑:很抱歉继续添加链接,但我一直在寻找有用的文章: http: //nullcandy.com/php-image-upload-security-how-not-to-do-it/

于 2012-10-12T11:48:36.293 回答
2

解决方案非常简单。

验证所有上传的数据。在您 100% 确定它没有任何恶意之前,请不要存储任何东西。

一种方法是使用该getimagesize()函数。

于 2012-10-12T11:56:04.230 回答
0

您必须跟踪文件的全名。

但要小心:

例如,有人可以创建像 foo.jpg.asp 或 php 或 exe 之类的文件。

使用正则表达式正确匹配它。

于 2012-10-12T11:53:38.677 回答