1. 云栖社区>
  2. PHP教程>
  3. 正文

php上传文件类型判断

作者:用户 来源:互联网 时间:2017-12-01 16:34:27

上传文件命名用户

php上传文件类型判断 - 摘要: 本文讲的是php上传文件类型判断, 1.先讲下php文件上传该注意哪些安全问题吧           文件类型mime和后缀名判断 (可能会被用户恶意修改)           文件一定要重命名           文件存放目录不应用可执行权限           文件大小

1.先讲下php文件上传该注意哪些安全问题吧

          文件类型mime和后缀名判断 (可能会被用户恶意修改)

          文件一定要重命名

          文件存放目录不应用可执行权限

          文件大小的控制.

2.说说这个文件类型的判断

    根据后缀名判断:大家都知道,不是很准确,可能会被用户恶意修改

    比较有效的方法就是判断文件的二进制流的前几个字节的数据

    相应文件对应的二进制数据,大家可以在这儿网址下去查

   http://www.filesignatures.net/index.php?page=all&currentpage=4&order=EXT

   判断方法:

$fp = fopen($filename, 'rb');

         $buffer = fread($fp,8); //读取几个字节应该参照上面的网站上查询的结果为准

         fclose($fp);

         $buffer = unpack('H*', $buffer);  //转换为16进制

         $buffer = unpack('C8code',$buffer)//也可以转换为10进制

         然后用$buffer 与网址上的数据进行对比即可.

        自己实现下哈,实践出真知.

        有时候对于图片可能会造假,上述方法可能查不出来,使用以下方法吧

         function_exists('getimagesize') && [email protected]($filename)

    目前所知的比较好的方法了,大家如果还有其他的方式,欢迎分享



以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索上传文件 , 命名 用户 ,以便于您获取更多的相关知识。