php的mime处理问题
黄舟
黄舟 2017-04-10 14:47:00
[PHP讨论组]

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

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

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
PHP中文网

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

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

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

巴扎黑

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号