3
使libmagic / file检测.docx文件
从其他地方可以看到 docx,xlsx和pttx是ZIP。将它们上传到我的Web应用程序时,file(通过libmagic和python-magic)将其检测为ZIP。 我将文件的内容作为Blob存储在数据库中,但是自然地我不想让用户相信它是哪种文件类型。因此,我想file在下载过程中信任并自动生成一个文件名。 我知道可以修改,/etc/magic但是格式(magic(5))对我来说太复杂了。我在Debian bugs上找到了关于该问题的bug报告,但是由于它是从2008年开始的,因此似乎无法很快得到修复。 我猜我唯一的选择是确实信任用户(但仍将内容存储为blob),并且仅根据文件名检查文件扩展名。这样,我可以禁止某些扩展并允许其他扩展。当用户重新下载他的文件时,他可以通过任何方式上传它。但是,如果与他人共享文件,此解决方案是不安全的,因为您可以简单地重命名文件以允许上传。 有任何想法吗? 最后,我找到了docx等的幻数列表,但无法将其转换为magic(5)格式。