Php drupal 7图像字段没有';t检查图像类型
如果您将(file.php)重命名为(file.jpg),并希望上载它 drupal 6 image_field模块可以检测到它并拒绝上载此文件 但是Drupal7中的image\u字段无法检测到它 你能帮我在Drupal7中找到另一个可以检测的模块(真实文件类型)吗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,然后尝试通过表单上传,它是为我
谢谢你你说得对,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);