【发布时间】:2011-08-25 09:46:16
【问题描述】:
这个问题我有一段时间了:文件的 mime 类型究竟是如何确定的?我相信这是通过检查文件的特定字节是否包含任何已知的magic numbers / file signatures 来完成的,对吧?
如果是这样,这就提出了另一个问题,假设我将一个带有假 GIF 文件签名的 bash 脚本上传到一个只允许上传图像的网站,会发生什么?要么:
- mimetype 检测例程足够智能,可以检测到虚假签名,或者
-
image/gif被错误地返回为 mimetype 并允许继续上传
我没有安装 ATM 的 HEX 编辑器,我不喜欢从测试中得出与安全相关的结论,因为我可能会遗漏(或误解)某些东西,所以我的问题是:以上选项中的哪一个是对吗?
此外,是否有任何其他最佳做法(除了检查 mimetype)来确保任何给定文件实际上是它看起来/需要(或允许)的内容?提前致谢。
PS:为了清楚起见,我不是在询问$_FILES 超全局中的type 索引。
【问题讨论】:
标签: php security file-upload mime-types mime