首页 > 作文

PHP 文件上传之如何识别文件伪装?——PHP的fileinfo扩展可!

更新时间:2023-04-08 00:29:26 阅读: 评论:0

问题:文件上传时候需要验证上传的文件是否合法,文件伪装如何识别?

一个简单测试:把txt文件后缀直接改成jpg;上传

<!doctype html><html>    <title>test</title>    <body>        <form enctype="multipart/form-data" action="test.php" method="post">            <!-- max_file_size must pre弦轴作用cede the file input field -->            <input type="hidden" name="max_fil形势与政策抗击疫情论文e_size" value="102400" />            <!-- name of input element determines name in $_files array -->            nd this file: <input name="urfile" type="file" />            <input type="submit" value="nd file" />        </form>    </body></html>

1.通过$_files[‘urfile’][‘type’];获取文件后缀名;

$data = $_files['urfile'];var_dump($data);/**结果**//*array(5) {  ["name"]=>  string(8) "test.jpg"  ["type"]=>  string(10) "image/jpeg"  ["tmp_name"]=&石头的外衣gt;  string(26) "/private/var/tmp中国最热的地方/phpfye3ec"  ["error"]=>  int(0)  ["size"]=>  int(19)大杏仁}*/

t_t 没有检测出来;

2.用pathinfo()函数来获取文件路径的信息

$data = $_files['urfile'];// var_dump($data);var_dump(pathinfo($data['name']));/**结果**//*array(4) {  ["dirname"]=>  string(1) "."  ["baname"]=>  string(8) "test.jpg"  ["extension"]=>  string(3) "jpg"  ["filename"]=>  string(4) "test"}*/

t_t 没有检测出来;

3.php的扩展fileinfo(需要安装开启)

$data = $_files['urfile'];$filename = $data['tmp_name'];$finfo   = finfo_open(fileinfo_mime_type);//返回 mime 类型。 自 php 5.3.0 可用。$mimetype = finfo_file($finfo, $filename);finfo_clo($finfo);var_dump($mimetype);/**结果**///string(10) "text/plain"

^_^ 可!可!可!监测到文件mime类型并不是一个jpg!

最后附上php手册介绍fileinfo的地址:

本文发布于:2023-04-08 00:29:24,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3435967334c48c33126d37be45e70493.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP 文件上传之如何识别文件伪装?——PHP的fileinfo扩展可!.doc

本文 PDF 下载地址:PHP 文件上传之如何识别文件伪装?——PHP的fileinfo扩展可!.pdf

标签:文件   是一个   类型   上传
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图