Por que os tipos MIME são necessários se podemos identificar os tipos de arquivo por suas extensões?

Por que os tipos MIME são necessários se podemos identificar os tipos de arquivo por suas extensões?

Se os computadores das pessoas podem decidir o que fazer com os arquivos com base em suas extensões (.pdf, .mp3, .docx, .dotx, etc.), por que os servidores web e os aplicativos de e-mail também precisam especificar um tipo MIME?

Posso ver que isso é útil se você deseja entregar um arquivo de uma forma diferente do padrão (por exemplo, mostrar um arquivo .py ou .html como texto simples) ou se a extensão do arquivo não estiver registrada no computador cliente, mas na maioria Em alguns casos, se eu estiver criando um novo formato de arquivo (por exemplo, .foobaz) e quiser permitir que as pessoas compartilhem esses arquivos na Web e por e-mail, não deveria ser suficiente confiar no reconhecimento da extensão do arquivo pelo cliente?

Responder1

O tipo MIME especifica claramente o uso pretendido do arquivo. As extensões de arquivo apenas sugerem o conteúdo. Ambos podem estar errados. DOC tem sido usado por vários editores de texto com uma variedade de formatos de arquivo internos.

Falsificar extensões é amplamente usado para enganar as pessoas quanto ao tipo de arquivo. Isso pode ser usado para malware de vários tipos. Também pode levar a bugs de segurança. Se myfile.txt for validado para segurança como um arquivo de texto e, posteriormente, pela inspeção de conteúdo for executado como um executável, você poderá acabar com uma máquina infectada.

Unix usa um bit executável para indicar qual arquivo pode ser executado. Os scripts podem começar com um caminho indicando qual intérprete deve executá-los. O comando file pode ser usado para determinar de forma bastante confiável o tipo de arquivo com ou sem extensão.

Usar extensões para identificar qual arquivo é usado pode levar à ambiguidade. Se eu tiver myfile.exe, myfile.com, myfile.bat e myfile.cmd, que será executado se eu executar o comando myfile.

Responder2

Você está olhando para isso do lado errado.

Um arquivo precisa de um tipo MIME para que o cliente saiba como lidar com o arquivo.

Sua pergunta também deve ser o contrário:

Por que precisamos de extensões de arquivo se podemos identificar os tipos de arquivo pelo tipo MIME?

A resposta provavelmente será mais fácil para os humanos identificarem o tipo de arquivo observando o nome. Pode haver outros motivos no Windows.

Responder3

Isso só acontece no mundo windows, no mundo unix os arquivos não precisam ter extensão, são identificados pelo tipo MIME.

Responder4

Como aplicativos pequenos e personalizados (projetados sob medida), tendem a ser bastante liberais quanto às extensões de arquivo. Isso pode levar a extensões de arquivo usadas para representar vários tipos de arquivos.

Como não há garantia de que uma extensão de arquivo corresponda a um determinado tipo de arquivo, o receptor pode não conseguir identificar o tipo de arquivo e não conseguir obter o programa correto para abri-lo.

Além dos tipos MIME, existem também outros sistemas de identificação de arquivos, por exemplo, Magic Numbers. O que significa que as extensões de arquivo não são necessárias. As extensões de arquivo também podem ser renomeadas por usuários que não conseguem abrir os arquivos, o que significa que é provável que entrem em contato com o suporte.

informação relacionada