2010-08-21 39 views
0

我正在制作一个使用Zend Framework的PHP图片上传器,它将图片上传到公共目录,供人们自由访问。如何制作安全的php图片上传器?

我迄今实施这些措施的安全性: - 文件大小验证 - 扩展验证 - Mime类型验证 - 一旦成功确认文件被重命名与在公共文件夹中的形象延伸,即/图片/上传/ ...

这是否足够安全?无法运行它通过一些防病毒脚本你可以(这是必需的)?

回答

0

文件扩展名和MIME类型可以很容易伪造。使用getimagesize()来查看它是否真的是一个图像。

+4

这是错误的解决方案国际海事组织。有可能创建一个完全有效的GIF图像,这也是一个完美有效的PHP脚本。你应该抛弃无效的图像文件,只是因为它们是无效的,但为了安全起见,你应该依靠适当的服务器配置。不要让服务器在公共目录中执行文件。另外,为上传的图像执行正确的文件扩展名(不允许图像名为'image.gif.php'),并确保只有'.php'文件被PHP处理(大多数服务器已经正确设置)。 – 2010-08-21 08:30:40

+1

有关上述漏洞的更多信息,请参阅此链接:http://www.phpclasses.org/blog/post/67-PHP-security-exploit-with-GIF-images.html – 2010-08-21 08:32:25

+0

感谢您的信息,我没有意识到这种利用。 – Maerlyn 2010-08-21 08:54:37

0

你不应该保存上传到公共文件夹! 你应该将它们保存在一个私人目录中,并使用视图助手为你加载图像