首页 > php的mime处理问题

php的mime处理问题

根据个人一些经验,在php处理文件上传时,经常可以用到下面几种方式来判断文件的类型

  1. 通过文件名后缀,不安全,非常容易欺骗
  2. 通过mime判断,部分类型的文件通过修改文件后缀名,也可以被欺骗服务器
  3. 通过头字节判断文件类型,但是判断范围有限,比如docx/xlsx等新的文档,通过头信息判断时,其实是一个zip包。

请问,是否有其他方式来更加合理安全的获取文件类型呢?


先判断头,如果是图片就上gd,如果是文档就用openoffice
假的也要给你转成真的。


我认为题主的需求应该是如何保证文件上传的安全性。
首先,应该要对文件类型和大小做一定的硬性规定。此外,个人认为 mime 类型判断已经比较安全了,如果题主还是不放心,可以通过读取文件头来判断真实类型。
方法可以参考这个案例:

《PHP通过读取文件头部两个字节判断文件真实类型及其应用示例》

看到题主提问中的内容,我认为正如题主所说的三种方法,安全级数依次增强,如果逐层做到这三点,我认为安全性应该是有保障的。

【热门文章】
【热门文章】