gpt4 book ai didi

php - MIME 类型检查对文件上传没用? (特别是使用 Javascript 文件 API)?

转载 作者:可可西里 更新时间:2023-10-31 22:46:15 25 4
gpt4 key购买 nike

我有一个服务器脚本从 Javascript 接收上传的文件。

客户端,使用 File 对象(来自 W3C File API )和类似于此行的代码:

if (file.type.indexOf("text") == 0) { ... }

可以检查文件类型。显然,这使用了 MIME type (返回 these strings )。

在我通过 SO 的旅程中,我冒险穿越了 this worthy contributor ,谁坚持 MIME 类型是无用的。

MIME 类型在文件上传情况下真的基本上没有用吗,因此任何类型检查都应该在服务器端进行吗?

最佳答案

该贡献者认为所有 MIME 类型检查都是无用的,无论是客户端还是服务器端。

在某种程度上他是对的。 MIME 类型检查始终基于嗅探文件的某些特征。他的示例:PDF 文件应以类似 %PDF-1.4 的内容开头。但是以 %PDF-1.4 开头的文件不一定是 PDF 文件。 (简化说明。)

用户可以将所有正确的提示放在所有正确的位置,以便 MIME 检测器将文件检测为某种特定类型,因为它正在查看那些特定的提示。但是文件的其余部分可能完全不同。但是,如果你走得那么远,那么生成某种类型文件的是什么?这只是二进制官话。最后,您可以确保文件是 X 类型的有效文件的唯一方法是尝试使用需要 X 类型文件的解析器打开并解析它。如果它正确解析,则它是一个有用的 X 类型文件。如果它走路像鸭子,叫起来像鸭子...

考虑到这一点,尝试解析文件比嗅探 MIME 类型服务器端好于嗅探 MIME 类型客户端好于听取用户的文件类型。请注意,客户端 MIME 类型嗅探与相信用户的话一样不可靠,因为这一切都发生在客户端。

关于php - MIME 类型检查对文件上传没用? (特别是使用 Javascript 文件 API)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com