检查上传的文件内容纯粹是该内容类型

时间:2016-10-13 05:30:47

标签: php file-upload drupal drupal-7 php-5.3

如果我将jpg标题(jpg文件的第一行)放在HTML文件中并使用jpg扩展名保存,那么我可以绕过MIME类型检查。 例如:

ÿØÿà JFIF   d d  ÿì Ducky     <  ÿî Adobe dÀ   ÿÛ „    

    
hyuhjjh

<script>
alert(hello);
</script>

如果我将上述代码保存为JPG文件,则可以绕过MIME类型检查。

echo mime_content_type('x.html.jpg'); //shows 'image/jpeg'

我希望脚本检查上传的文件内容纯粹是该内容类型(jpg / png或pdf或3gp / mov)。适用于图像,文档和视频类型。

或者不包含任何脚本。

其实我需要Drupal。所以我必须使用自定义PHP代码。 在Drupal 7.50中,我使用了&#34;文件上传安全验证器&#34;验证上传的文件MIME类型,但对于上述类型的情况没用。

1 个答案:

答案 0 :(得分:1)

您需要使用某个库来实际加载该文件。对于图像,我使用GD打开目标图像并检查它是否返回了合理的高度和宽度。

其他类型也可以这样做。我想对于视频文件来说这可能是非常需要资源的,但这是唯一确定的方法。