我想知道哪些mime类型在浏览器中设置为内容类型是危险的,如果有的话?
我注意到许多论坛软件在上传文件时,将application / octet-stream用于图像以外的任何文件,并在输出时将其放入标题的内容类型中。我想知道为什么他们不将实际的mime类型放入内容类型?这涉及安全风险吗?到目前为止,我已经使用了text / css,text / plain,audio / mpeg等等,并没有注意到application / octet-stream和其他这些之间有任何区别。
有没有人知道确切的区别,是什么让application / octet-stream更好,或更糟糕......用于内容类型?
或许存在浏览器限制?
我正在谈论在上传文件时使用$ _FILES ['myFile'] ['type']获取内容类型,将该信息存储到数据库中,而不是在该文件的标题中使用该内容类型被人召唤时这涉及到任何安全风险吗?和/或浏览器限制?
更新
如果用户在IE中上传文件,我使用$ _FILES ['type']变量将mime-type存储到数据库中,而另一个用户访问该文件,我从中获取mime类型使用IE mime类型上传的文件的数据库,并且该用户正在使用Firefox访问该文件,这会导致任何问题吗?反之亦然,并想知道这对于任何浏览器是否都是一个问题。
谢谢你:)
答案 0 :(得分:2)
你基本上可以使用你喜欢的任何mime类型。如果浏览器理解mime类型,它将尝试渲染它;如果浏览器具有为该特定mime类型设置的插件,它将尝试启动它;否则你只需要下载对话框。
使用application/octet-stream
的原因很多,因为它或多或少意味着下载对话框将在浏览器中显示。因此,通过在Content-Type
标头中使用该mime类型,您可以强制浏览器以显示下载对话框。这基本上是在这种情况下使用它的唯一原因。