加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP文件上传:mime还是扩展验证?

发布时间:2020-12-13 17:37:11 所属栏目:PHP教程 来源:网络整理
导读:当我尝试处理文件上传时,应该根据文件MIME类型还是文件扩展名进行验证? 什么是优点这两种文件验证的缺点? 而且,我应该关心什么其他安全问题? 在这些日子里,我依靠MIME类型,但是在这篇文章中大多数投票的答案 File upload issues in PHP说: Never rely on
当我尝试处理文件上传时,应该根据文件MIME类型还是文件扩展名进行验证?

什么是优点这两种文件验证的缺点?

而且,我应该关心什么其他安全问题?

在这些日子里,我依靠MIME类型,但是在这篇文章中大多数投票的答案

File upload issues in PHP说:

Never rely on the MIME type submitted by the browser!

好吧,所有这些在这里的传奇人物都有一些关于“螺丝扩展,检查MIME!FILEINFO RLZ!”的内容,我已经准备了一些教程:

>下载此pretty php logo I drew
>查看不错,不是吗?
>将其重命名为whatever_you_like.php
通过所有你真棒的mime类型/任何检查器
>运行它

总而言之,你永远不会依赖于MIME类型.你的Web服务器不关心MIME类型,它决定了EXTENSION做什么,最终被downvoted的@Col. Shrapnel的答案其实是正确的.检查MIME所提供的任何信息在执行时绝对与您的网络服务器无关.

编辑:这个不寻常的代码,就像你想要的那样,为这种类型的攻击打开一个网站:

<?php

$mimetype = mime_content_type($_FILES['file']['tmp_name']);
if(in_array($mimetype,array('image/jpeg','image/gif','image/png'))) {
   move_uploaded_file($_FILES['file']['tmp_name'],'/whatever/something/imagedir/' . $_FILES['file']['name']);
   echo 'OK';

} else {
    echo 'Upload a real image,jerk!';
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读