问题描述
我有一个简单的问题:在我正在开发的系统中,用户可以向我们发送zip文件,而我需要过滤其中的内容。 (阻止应用程序和恶意脚本)
通过扩展名阻止内部文件很容易,但是没有扩展名的文件很常见,并且扩展名不是有关文件内容的最可靠来源。
我已经尝试使用python magic,但是它需要一些我的服务器不支持的软件包,并且该服务器不会对我有帮助。 哦! 我没有选择将系统更改为另一台服务器的选项。 因此,在这种情况下,我没有python魔术。
有谁知道如何通过文件头检查文件类型?
1楼
这不是一个直接的答案,但是/ etc / magic的格式并不那么复杂,因此,如果仅需要检测几种文件类型,也许编写自己的检测例程最容易。
# Java
0 beshort 0xcafe
>2 beshort 0xbabe application/x-java-applet
我们得到:
data = open(path).read()
if data[0:4] == '\xca\xfe\xba\xbe':
minetype = 'application/x-java-applet'