如何在linux上扩展magic.mime


how to expand magic.mime on linux

我正在尝试允许安全上传文件,我使用php 5.3 Fileinfo来做到这一点。这使用了Centos系统上的magic.mime文件。

问题是TTF字体、OTF、EOT、SVG。。。文件不会被识别为这样,它默认返回到"application/octet流"作为mime类型。

这对我来说不安全,因为这可能只是任何文件,如可执行文件。我的问题是:我能得到一个包含上述文件定义的magic.mime文件吗?甚至更好:是否有一种一致的方法或方法可以将新的mime类型添加到magic.mme文件中,以便我们在检查新类型的文件时可以轻松地扩展此文件。

我搜索了一下提供magic.mime文件的包:

    yum whatprovides "/usr/share/magic.mime"
Name       : file
Arch       : i386
Version    : 4.17
Release    : 15.el5_3.1
Size       : 1.6 M
Repo       : installed
Summary    : A utility for determining file types.
URL        : http://www.darwinsys.com/file/

问题是CentOS没有安装最新的FILE包,所以我无法以这种方式更新文件。

我还有一个文件-4.17,它使用/usr/share/file/magic。我无法更新file命令,并且PEARmime_type使用了与PHP fileinfo相同的魔术。所以,我找到的唯一解决方案是编辑magic.mime(备份后)并手动添加无法识别的类型(在我的情况下是FLV)。然后你需要做一个file -C -m magic.mime来编译它