在 DRUPAL 中验证 PDF 文件上传中的 MIME 类型
Posted
技术标签:
【中文标题】在 DRUPAL 中验证 PDF 文件上传中的 MIME 类型【英文标题】:Verify MIME type in PDF file upload in DRUPAL 【发布时间】:2016-12-28 17:45:58 【问题描述】:drupal文件上传中如何验证pdf文件的mime类型。
问题:任何人都可以通过重命名或添加文件扩展名来上传脚本文件(例如:script.php.pdf)
我已经实现了图像上传的 mime 类型检查(因为它是一个单独的模块),但无法确定在哪里验证 pdf 文件的 mime 类型。
图像 MIME 类型检查代码:
$supported_mime = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');
$elements[$delta]['#upload_validators']['file_validate_mime_type'][0] = implode('::', $supported_mime);
【问题讨论】:
【参考方案1】:额外验证的代码应该放在你的 hook_file_validate() 函数中:
https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_file_validate/7.x
然而,仅仅重命名文件(隐藏真实扩展名)似乎不太可能达到欺骗 Drupal 的目的。我的意思是即使 php 如果上传了 php 文件,扩展名为 .pdf 也不会被执行。
【讨论】:
以上是关于在 DRUPAL 中验证 PDF 文件上传中的 MIME 类型的主要内容,如果未能解决你的问题,请参考以下文章
为什么fpdi输出不能在Drupal 7中工作,而是在D7之外工作