在谷歌应用程序引擎上,我如何阻止用户上传重命名为友好的恶意文件?

时间:2014-04-30 02:29:22

标签: php google-app-engine google-cloud-storage

我正在开发一个应用程序,用户可以上传图片,并且我已经在Google App Engine上进行了设置,我认为这是非常棒的。但我无法确定将用户上传验证为合适图像的最佳方式,我无法在文档中看到任何关于它的内容,而且谷歌上的搜索结果非常少,所以我很擅长想知道我是不是走错了路。

基本上我不想存储不是图像的文件(成本和一致性原因主要是为了保护我的用户)所以我需要一种有效的方法来确定,我正在考虑使用云存储工具API获取内容类型,但我想知道这是否只是基于文件扩展名,因为GCS上传网址给我回来的文件类型是' image / jpeg& #39;当我将.exe重命名为.js

我真的觉得我在这里遗漏了一些东西,还有其他人在谷歌应用引擎上遇到过这个问题吗?

4 个答案:

答案 0 :(得分:1)

要确定文件类型,您需要一种机制来检查通常包含幻数的文件的前几个字节。幻数是确定文件类型的一种方法。查看常用文件扩展名的各种幻数:http://billatnapier.wordpress.com/2013/04/22/magic-numbers-in-files/

答案 1 :(得分:1)

GD扩展程序可用,因此您可以在文件上调用getimagesize

如果它给你一个有效的大小,那么假设它是一个图像,否则它不是。

答案 2 :(得分:0)

与解决方案类似的问题:

答案 3 :(得分:0)

使用exif_imagetype。基于the docs,它比getimagesize快。