我的知识记录

织梦DedeCMS文件类型限制报错解决方案

"文件类型不允许"错误由系统安全策略拦截非常规文件类型引发,需通过扩展名白名单调整、MIME校验修正或安全规则适配解决。

问题原因

  1. 网站上传白名单限制$cfg_upload_allowtype参数未包含目标文件扩展名(如.apk/.psd)
  2. 伪装扩展名攻击:上传文件实际类型与扩展名不符(如.jpg文件实为.php)
  3. 网站MIME校验冲突:服务器检测到的MIME类型(如application/octet-stream)不在允许列表
  4. 安全软件拦截:云锁、安全狗等安全工具主动拦截非常规文件类型
  5. 文件头特征不匹配:通过文件头校验机制发现类型异常

解决方法

解决方向 具体操作
扩展允许上传类型 修改/include/uploadsafe.inc.php中的$cfg_upload_allowtype数组
关闭MIME严格校验 在后台「系统」→「系统基本参数」→「附件设置」取消勾选「检测MIME类型」
添加自定义安全规则 /include/uploadsafe.inc.php底部追加:<br>$allowedtypes['xxx'] = array('mime类型');
临时禁用安全软件 暂停服务器安全防护软件并测试上传功能(仅用于问题定位)
修改上传限制参数 调整php.ini中的upload_max_filesizepost_max_size

注意事项

  1. 修改uploadsafe.inc.php前必须备份原文件
  2. 严禁将.php/.jsp等可执行文件类型加入白名单
  3. 上传非图片文件建议使用.zip等安全格式并设置解压密码
  4. 扩展名建议全小写(如.PDF需改为.pdf
  5. 服务器防火墙需检查是否拦截multipart/form-data类型请求
  6. 推荐使用file -bi 文件名命令验证真实文件类型

标签:网站上传白名单-网站MIME校验-网站安全规则-网站扩展名过滤-网站文件头检测

更新时间:2025-04-17 10:02:23

上一篇:织梦DedeCMS验证码图片无法显示解决方案

下一篇:织梦DedeCMS后台频繁报错“Safe Alert: Request Error”排查与修复