php 上传文件 安全性,PHP上传文件增强了安全性

$allowed_types = array(

/* images extensions */

'jpeg', 'bmp', 'png', 'gif', 'tiff', 'jpg',

/* audio extensions */

'mp3', 'wav', 'midi', 'aac', 'ogg', 'wma', 'm4a', 'mid', 'orb', 'aif',

/* movie extensions */

'mov', 'flv', 'mpeg', 'mpg', 'mp4', 'avi', 'wmv', 'qt',

/* document extensions */

'txt', 'pdf', 'ppt', 'pps', 'xls', 'doc', 'xlsx', 'pptx', 'ppsx', 'docx'

);

$mime_type_black_list= array(

# HTML may contain cookie-stealing JavaScript and web bugs

'text/html', 'text/javascript', 'text/x-javascript', 'application/x-shellscript',

# PHP scripts may execute arbitrary code on the server

'application/x-php', 'text/x-php', 'text/x-php',

# Other types that may be interpreted by some servers

'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh',

'text/x-c++', 'text/x-c',

# Windows metafile, client-side vulnerability on some systems

# 'application/x-msmetafile',

# A ZIP file may be a valid Java archive containing an applet which exploits the

# same-origin policy to steal cookies

# 'application/zip',

);

$tmp_file_extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));

if(!strlen($tmp_file_extension) || (!$allow_all_types &&

!in_array($tmp_file_extension,$allowed_types))) {

return false;

}

$finfo = new finfo(FILEINFO_MIME, MIME_MAGIC_PATH);

if ($finfo) {

$mime = $finfo->file($file_name_tmp);

}

else {

$mime = $file_type;

}

$mime = explode(" ", $mime);

$mime = $mime[0];

if (substr($mime, -1, 1) == ";") {

$mime = trim(substr($mime, 0, -1));

}

return (in_array($mime, $mime_type_black_list) == false);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值