我正忙于编写PHP文件,以便安全地上传图像,例如.jpg,.jpeg,.png,.bmp和.gif
以下是代码:
$realname = $_FILES['userfile']['name'];
if(!preg_match("/(\.jpg|\.png|\.gif|\.bmp|\.jpeg)$/i",$realname)) {
die();
}
有没有办法绕过此检查才能上传.php文件?我听说过file.php%00.jpg技巧,但这是安全的。有谁知道其他任何方法?或者上面的代码安全吗?
答案 0 :(得分:0)
回答这个问题:是的。
但是你很幸运,我刚写了这个:
function checkImageFileIsImage($filepath) {
$type = exif_imagetype($filepath);
$allowedTypes = array(
1, // [] gif
2, // [] jpg
3 // [] png
);
if (!in_array($type, $allowedTypes)) {
return false;
}
return true;
}
请查看http://php.net/manual/en/function.exif-imagetype.php了解更多文件类型。