我可以信任$ _FILES的文件类型吗?

Hap*_*per 8 php security upload

$_FILES上传图片时可以信任文件类型吗?或者我必须再次检查exif_imagetype()

Seb*_*mba 7

文档:

文件的mime类型,如果浏览器提供了此信息.一个例子是"image/gif".但是,在PHP端没有检查这个mime类型,因此不会将其值视为理所当然.


Sal*_*n A 5

不,你不能相信$_FILES['userfile']['type']变量.此变量中存在的值可以伪造.您可以使用finfo_file更可靠地检测文件类型:

$finfo = finfo_open(FILEINFO_MIME_TYPE); // we need mime type
echo finfo_file($finfo, "/path/to/uploaded/file"); // displays something like image/gif
finfo_close($finfo);
Run Code Online (Sandbox Code Playgroud)

这些函数需要PHP> = 5.3.0.