检查上传的文件是否是php中不安全的文件类型

时间:2012-05-20 20:29:26

标签: php security file file-upload file-processing

我有一个文件上传表单,需要对上传的文件进行检查,以确保它不是可能导致服务器出现问题的任何内容(即:可执行文件)。这些文件主要是图像,但我将处理原始文件格式的其他扩展,可以是许多不同的扩展。所以,我觉得最简单的方法就是检查一下我不想要的东西,而不是我做的事情。

最好的方法是什么?理想情况下,它可以在Windows和Linux服务器上运行,但主要是Linux,如果现在两者都可以。

1 个答案:

答案 0 :(得分:2)

我建议你应该保留允许类型的白名单,而不是被阻止的黑名单。虽然treat any kind of file-extension based processing as a weak line of defence,但是规避这种检查是微不足道的。

所以不要只检查文件扩展名。可能值得验证文件的内容类型是否与扩展名匹配 - 请参阅Fileinfo扩展名。如果您只是使用图片,可以use GD or ImageMagick to reprocess the file.

最后,我建议您将任何上传的文件存储在不允许执行的文件系统上 - 在Linux / UNIX平台上使用noexec挂载 - 尽管请注意isn't really an equivalent on Windows

相关问题