我能否可靠地找出正确的mime类型来提供不受信任的内容?

时间:2010-10-23 01:33:20

标签: python web-applications mime mime-types

假设我让用户将文件上传到我的服务器,我让用户下载它们。我想将mime类型设置为除了application / octet-stream以外的其他类型,这样如果浏览器只能打开它们,它就会(例如,对于图像,pdf文件,纯文本文件等)当然由于文件是由用户上传的,我无法信任文件扩展名等。

是否有一个很好的库来确定mime类型与任意blob的关系?最好从Python中使用: - )

谢谢!

2 个答案:

答案 0 :(得分:3)

尝试python-magic

答案 1 :(得分:1)

谨防文本文件:无法知道它们所处的编码,并且没有可靠的猜测方式,特别是因为在Windows中创建的大多数都是8位MBCS编码,没有语言启发式就无法区分。您需要知道编码 - 而不仅仅是MIME类型 - 来设置文件的完整内容类型,以便在浏览器中查看。如果您想允许上传和显示文本,使用HTML文本表单比原始文件上传更安全。

另外,请注意文件可以是多种文件类型;例如,自解压ZIP既是有效的Windows可执行文件,也是ZIP文件,可以视为。