如何在图像中编写PHP代码

时间:2012-10-12 11:46:02

标签: php

我创建了一个网站。在本网站上有能力上传图片。   我读了一篇php文章,攻击者可以在GIF图像中间插入PHP代码然后在网站上传这个“邪恶”图像,然后该网站可能会打开安全漏洞         任何朋友都可以提出抵抗这种攻击的想法。

3 个答案:

答案 0 :(得分:5)

此链接说明了如何以非常好的细节完成此操作:

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

我在文章中说的最重要的不是includingrequiring上传的文件。例如,如果您要上传图片,您可以通过以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/

答案 1 :(得分:2)

解决方案非常简单。

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

这样做的一种方法是使用getimagesize()函数。

答案 2 :(得分:0)

您必须跟踪文件的全名。

但要小心:

例如,有人可以创建一个像foo.jpg.asp或php或exe或者其他任何文件的文件。

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