php上传文件类型判断

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') && !@getimagesize($filename)

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



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值