在PHP网站上,他们建议的唯一实际检查是使用is_uploaded_file()或move_uploaded_file(),这里。当然,出于多种原因,您通常不希望用户上传任何类型的文件。
is_uploaded_file()
move_uploaded_file()
因此,我经常使用一些“严格”的MIME类型检查。当然,这是非常有缺陷的,因为通常哑剧类型是错误的,并且用户无法上传其文件。伪造和/或更改也非常容易。除此之外,每种浏览器和操作系统对它们的处理方式也不同。
另一种方法是检查扩展名,这当然比mime类型更容易更改。
如果只需要图像,则可以使用类似的方法getimagesize()。
getimagesize()
那其他类型的文件呢?PDF,Word文档还是Excel文件?甚至是纯文本文件?
编辑: 如果您没有mime_content_type或Fileinfo,并且system(“ file-bi$uploadedfile”)给您错误的文件类型,还有哪些其他选择?
看一下mime_content_type或Fileinfo。这些是内置的PHP命令,用于通过查看文件内容来确定文件的类型。还要检查以上两页上的评论,还有其他一些好的建议。
就我个人而言system("file -bi $uploadedfile"),使用本质上是的东西我很幸运,但是我不确定这是否是最好的方法。
system("file -bi $uploadedfile")