设计给的图标是矢量格式,媒体库直接拒绝上传,提示对不起不允许上传此文件类型,改扩展名也绕不过去。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,默认允许列表里不含矢量格式,因为文件内部能藏脚本;只补类型不校验内容,等于把口子整个打开,前后两头都得管住一层。

「SVG 上传白名单」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。改完顺手把文档补一句,省得下次自己重新推一遍。

add_filter('upload_mimes', function ($m) {
  $m['svg'] = 'image/svg+xml';
  return $m;
});

监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

具体做法是,只对管理员这一个角色放开这个文件类型上传;上传之后再按标签白名单把内容完整清洗一遍;附件统一放到一个独立的域名下面去访问更好。

最后用这个标准收尾,管理员能正常上传,普通作者仍然被拒,文件里的脚本会被清掉。

作者 9823189