Php 上载pdf文件的真实性

Php 上载pdf文件的真实性,php,pdf,file-upload,security,Php,Pdf,File Upload,Security,我的服务器必须只接受pdf文件。我用php上传文件。目前,我正在检查文件是否以%PDF开头,以确保上传的文件确实是PDF文件。是否有其他检查来确保它100%(或至少非常强烈地)是pdf文件。恶意用户能否上载以%PDF开头的可执行文件?我非常感谢你的帮助 您可以使用PECL扩展来检测MIME类型。(但我怀疑,在内部,它只是做了与您已经在做的相同的事情。)或者,您可以使用来查看是否可以成功读取该文件。但对于PDF文件,我认为嵌入式恶意软件比命名错误的可执行文件更令人担忧。每当您接受用户上传时,最好通

我的服务器必须只接受pdf文件。我用php上传文件。目前,我正在检查文件是否以%PDF开头,以确保上传的文件确实是PDF文件。是否有其他检查来确保它100%(或至少非常强烈地)是pdf文件。恶意用户能否上载以%PDF开头的可执行文件?我非常感谢你的帮助

您可以使用PECL扩展来检测MIME类型。(但我怀疑,在内部,它只是做了与您已经在做的相同的事情。)或者,您可以使用来查看是否可以成功读取该文件。但对于PDF文件,我认为嵌入式恶意软件比命名错误的可执行文件更令人担忧。每当您接受用户上传时,最好通过或类似方式运行文件。

您可以使用PECL扩展来检测MIME类型。(但我怀疑,在内部,它只是做了与您已经在做的相同的事情。)或者,您可以使用来查看是否可以成功读取该文件。但对于PDF文件,我认为嵌入式恶意软件比命名错误的可执行文件更令人担忧。每当您接受用户上传时,最好通过或类似方式运行该文件。

如果文件头为%PDF,则可以假定您有一个PDF文件,如果该PDF文件是恶意文件(意味着它利用读取器执行任意代码)是另一个故事,您可以使用您选择的PDF库,并尝试以PDF格式读取该文件。如果失败,则它不是一个正确的PDF文件(根据您的库的条款)。如果文件头是%PDF,则可以假定您有一个PDF文件,如果该PDF是恶意文件(意味着它利用读取器的漏洞执行任意代码),则是另一种情况。您可以使用您选择的PDF库并尝试以PDF格式读取该文件。如果失败,它就不是一个合适的PDF文件(按照您的库的条款)。