Php drupal 7图像字段没有';t检查图像类型

Php drupal 7图像字段没有';t检查图像类型,php,drupal-7,drupal-6,drupal-modules,image-uploading,Php,Drupal 7,Drupal 6,Drupal Modules,Image Uploading,如果您将(file.php)重命名为(file.jpg),并希望上载它 drupal 6 image_field模块可以检测到它并拒绝上载此文件 但是Drupal7中的image\u字段无法检测到它 你能帮我在Drupal7中找到另一个可以检测的模块(真实文件类型)吗 谢谢你你说得对,Drupal 7没有mime类型验证 有人在该链接中对其进行了修补: 一家网站安全审计公司对我的一个Drupal项目提出了同样的问题。在我的场景中,如果我将.exe文件更改为.jpg,然后尝试通过表单上传,它是为我

如果您将(file.php)重命名为(file.jpg),并希望上载它

drupal 6 image_field模块可以检测到它并拒绝上载此文件 但是Drupal7中的image\u字段无法检测到它

你能帮我在Drupal7中找到另一个可以检测的模块(真实文件类型)吗


谢谢你

你说得对,Drupal 7没有mime类型验证

有人在该链接中对其进行了修补:
一家网站安全审计公司对我的一个Drupal项目提出了同样的问题。在我的场景中,如果我将.exe文件更改为.jpg,然后尝试通过表单上传,它是为我上传的

我在web和drupal社区上搜索,但没有得到任何合适的答案。最终 我在核心“include/file.inc”文件中编辑并定义支持的mime类型为“'image/jpg'、'image/jpeg'、'image/png'、'image/gif'”

但不建议在Drupal核心文件中进行更改。以下是完整的代码:

更改功能文件\u验证\u mime\u键入“include/file.inc”文件

在文件“modules/image/image_field.inc”中添加了以下两行

在下一行之前

$elements[$delta]['#process'][]='image_field_widget_process'
web安全审核团队通过了此代码。也许将来我们会得到一些更好的答案

 $errors = array();
 $allowedmimetype = explode('::', $mime_types);
 $finfo = new finfo(FILEINFO_MIME_TYPE);
 $tmpmime =$finfo->file($file->uri);
 if (!in_array($tmpmime, $allowedmimetype) )
 {
    $errors[] = t('Not allowed this mime type '.$tmpmime.'! Only files with the  following mime type are allowed: %files-allowed.', array('%files-allowed' => $mime_types));
 }
 return $errors;
}

    $elements[$delta]['#upload_validators']['file_validate_mime_type'][0] = implode('::', $supported_mime);