我的php文件上传安全性有多强?

我的php文件上传安全性有多强?,php,Php,我想有一个检查是否上传的文件发送通过电子邮件,而不是在数据库中保存,只允许以下扩展名 这安全吗 $allowed = array('pdf','doc'); $filename = $_FILES['video_file']['name']; $ext = pathinfo($filename, PATHINFO_EXTENSION); if(!in_array($ext,$allowed) ) { echo 'error'; } 不,它不是(一个文件可以有两个扩展名:image.p

我想有一个检查是否上传的文件发送通过电子邮件,而不是在数据库中保存,只允许以下扩展名

这安全吗

$allowed =  array('pdf','doc');
$filename = $_FILES['video_file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed) ) {
    echo 'error';
}
不,它不是(一个文件可以有两个扩展名:
image.php.jpg


如果您计划只上传图像,一个好方法是尝试使用
getimagesize
获取图像大小,如果返回
false

则将其从临时文件夹中删除。如果您有偏差或倾向于上传任何扩展名的文件。此“临时文件夹”位于何处?基本上我只发送pdf和文档文件(我正在更新我的代码),如果你打算上传pdf和文档,那么就不要使用此代码(pdf没有图像大小)。检查文件mime类型,并确保将其存储在无法使用apache解释的位置。关于图像临时文件夹,它通常是
/tmp
。如果你想要更安全,你可以创建一个允许上传的IP地址的白名单,或者在上传之前添加一个登录模块。我使用邮件功能将其发送到电子邮件。我在我的cPanel中用他们的名字搜索上传的文件,但没有找到