2010-11-20 63 views

回答

1

我认为你应该使用类似finfo_file的东西。据我所知,$_FILES["file"]["type"]可以被上传者欺骗他想要的任何东西。

0

此外,您还可以检查MIME类型,每个文件名.exe的可执行文件始终默

pplication /八位字节流,应用程序/ x-msdownload,应用/ EXE,应用程序/ x轴的应用类型如果你使用的RegExp或pathinfo,在这种情况下,我认为是应用程序/ x-winexe,应用程序/ msdos窗口,应用程序/ x-msdos程序

0

更简单,你只检查文件名而不检查文件类型。

检查this answer来看看如何获​​得MIME类型(FileInfo的或mime_content_type)

1

没有可靠的方法来做到这一点作为由客户端发送的所有信息可以被篡改。

我只想检查文件的扩展名,如:

if (strncasecmp(substr($_FILES["file"]["name"], -4), '.exe') === 0) { 
    // is .exe 
} 

此外,你可以查找特定magic numbers

只要确保要传递该文件,您就可以使用适当的MIME媒体类型(例如application/octet-stream)。

-1
$_FILES["uploaded_files"]["type"][$i] != "application/octet-stream" 
相关问题