Os tipos MIME
Na web, quando você acessa um documento, figura, imagem, animação e qualquer tipo de arquivo, ele é acompanhado de um cabeçalho que lhe dá um tipo MIME.
No Windows os arquivos são identificados através da extensão do arquivo, coisa que não é verdade em outras plataformas (como Macintosh/OS X). Os servidores web, por outro lado, não identificam os arquivos. Eles apenas associam um arquivo com tipo MIME e enviam esse MIME para o navegador junto com o arquivo, quando este requisitá-lo. Por exemplo, quando o servidor web enviar uma página HTML, ele vai retornar o seguinte para o seu navegador:
text/html é um tipo MIME que representa os arquivos HTML. Existem outros, como text/css que identifica um arquivo CSS, ou o text/plain que identifica um arquivo de texto simples. Quando o seu navegador não reconhecer um tipo MIME é que ele vai mostrar a tela pedindo uma localização para fazer o download do arquivo.
Os tipos MIME fazem com que as extensões na web sejam inúteis, seja ela GIF, JPG, HTML ou EXE, pois o navegador não vai interpretar a extensão, mas sim o tipo MIME que é enviado pelo servidor. É por este motivo que se você acessar uma URL com EXE você pode ser servido com um arquivo HTML:
http://www.linhadefensiva.org/processos/firefox.exe
Embora a URL acima tenha uma extensão EXE, você foi servido com um arquivo HTML pelo motivo de que o servidor web executou um script (pequeno programa) que gerou essa página HTML com as informações sobre o processo do Firefox.
Segurança com os tipos MIME
Apenas alguns navegadores muito antigos (versões pré-históricas do Netscape) vão identificar os arquivos na web pela extensão. Ou seja, a não ser que você queira um navegador que não é capaz nem de formatar uma tabela corretamente, terá de tomar certos cuidados com isso.
Vamos imaginar o seguinte: o que acontece se um arquivo GIF, aparentemente seguro, na verdade for um HTML que explora diversas falhas no navegador (que o usuário esqueceu de atualizar) para instalar trojans?
Claro que a URL aparentemente é segura, porém o usuário só vai notar que algo está errado alguns minutos depois, quando os trojans já tiverem contaminado seu micro. Na web, você não pode pensar que URLs com certas extensões são seguras e outras perigosas, pois os servidores web não pensam dessa forma.
Alguns softwares como o Proxomitron modificam o cabeçalho MIME recebido pelo navegador para que não seja possível enganar o usuário dessa forma. Note que não é possível corrigir alguns MIME, como EXE e DLL, já que estes arquivos são usados como scripts em alguns servidores web para gerar arquivos HTML.
Spywares e tipos MIME
Spywares utilizam filtros de tipos MIME no Internet Explorer para modificar as páginas que ele recebe. Por exemplo, o spyware é capaz de instalar um ‘filtro’ no MIME text/html. Como resultado, o spyware terá acesso ao conteúdo de todas as páginas HTML que você visitar, além de ter a capacidade de alterá-la, se necessário.
Spywares utilizaram isso para modificar os resultados do Google, adicionar propagandas e pop-ups em páginas limpas, criar um banco de dados dos hábitos de navegação dos usuários, entre outros.
Conclusão
Os tipos MIME permitiram uma maior flexibilidade nos servidores web, porém todas as facilidades estão acompanhadas de alguns problemas e o problema, nesse caso, é a associação que se faz onde endereços com certas extensões são seguras e outros perigosos.
Na web, essa associação não funciona. Foi isso que este documento tentou explicar.