概述
很简单,检测文件头,如果不是规定的类型就删除。
以下为摘抄自网络的代码示例。
function file_type($filename)
{
$file = fopen($filename, "rb");
$bin = fread($file, 2); //只读2字节
fclose($file);
$strInfo = @unpack("C2chars", $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
$fileType = '';
switch ($typeCode)
{
case 7790:
$fileType = 'exe';
break;
case 7784:
$fileType = 'midi';
break;
case 8297:
$fileType = 'rar';
break;
case 8075:
$fileType = 'zip';
break;
case 255216:
$fileType = 'jpg';
break;
case 7173:
$fileType = 'gif';
break;
case 6677:
$fileType = 'bmp';
break;
case 13780:
$fileType = 'png';
break;
default:
$fileType = 'unknown: '.$typeCode;
}
//Fix
if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';
if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png';
return $fileType;
}
echo file_type('start.php'); // 6063 or 6033
最后
以上就是老迟到枕头为你收集整理的把php文件伪装成jpg上传,用户上传a.jpg文件,文件内容实际为php代码,会不会有安全问题?如果有,如何防止?...的全部内容,希望文章能够帮你解决把php文件伪装成jpg上传,用户上传a.jpg文件,文件内容实际为php代码,会不会有安全问题?如果有,如何防止?...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复