首页后端开发PHPPHP识别文件伪装(文件上传)

PHP识别文件伪装(文件上传)

时间2024-02-02 01:36:03发布访客分类PHP浏览535
导读:收集整理的这篇文章主要介绍了PHP识别文件伪装(文件上传),觉得挺不错的,现在分享给大家,也给大家做个参考。问题:文件上传时候需要验证上传的文件是否合法,文件伪装如何识别?一个简单测试:把txt文件后缀直接改成jpg;上传<!DOCT...
收集整理的这篇文章主要介绍了PHP识别文件伪装(文件上传),觉得挺不错的,现在分享给大家,也给大家做个参考。

问题:

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

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

!DOCTYPE htML>
    html>
        tITle>
    test/title>
        body>
            form enctype="multipart/form-data" action="test.php" method="POST">
                !-- MAX_FILE_SIZE must PRecede the file input field -->
                input type="hidden" name="MAX_FILE_SIZE" value="102400" />
                !-- Name of input element determines name in $_FILES array -->
                Send this file: input name="userfile" type="file" />
                input type="submit" value="Send File" />
            /form>
        /body>
    /html>
    

1.通过$_FILES['userfile']['type'];获取文件后缀名;

$data = $_FILES['userfile'];
    var_dump($data);
/**结果**//*array(5) {
      ["name"]=>
      string(8) "test.jpg"  ["type"]=>
      string(10) "image/jpeg"  ["tmp_name"]=>
      string(26) "/private/VAR/tmp/phpfyE3EC"  ["error"]=>
      int(0)  ["size"]=>
  int(19)}
    */

没有检测出来;

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

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

没有检测出来;

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

$data = $_FILES['userfile'];
    $filename = $data['tmp_name'];
    $finfo   = finfo_open(FILEINFO_MIME_TYPE);
    //返回 mime 类型。 自 PHP 5.3.0 可用。$mimetype = finfo_file($finfo, $filename);
    finfo_close($finfo);
    var_dump($mimetype);
    /**结果**///string(10) "text/plain"

可!可!可!监测到文件MIME类型并不是一个jpg!

更多相关php知识,请访问php教程!

以上就是PHP识别文件伪装(文件上传)的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PHP识别文件伪装(文件上传)
本文地址: https://pptw.com/jishu/596188.html
PHP自定义函数+系统函数库(代码示例) 正则表达式中模式修正符作用详解

游客 回复需填写必要信息