Pare o Internet Explorer de renomear downloads

2

Eu coloquei uma página da web que explica como eu configuro minhas configurações do Visual Studio. Isso inclui downloads para extensões .vsix (os arquivos "Download" em "Erweiterungen installieren", "Indent Guides") ou .config (mais abaixo como "CodeMaid.config").

O Internet Explorer e o Edge são os únicos dois navegadores que deliberadamente alteram as extensões desses arquivos de download para algo que não funciona após o download. O Firefox simplesmente faz o que o servidor da Web informa e salva o arquivo baixado sob o nome especificado.

Eu poderia manipular o caso .vsix fornecendo o tipo MIME "application / vsix" para ele. Caso contrário, o IE teria interpretado esses arquivos como .zip (o que eles tecnicamente são). Eles não devem ser renomeados de qualquer maneira porque um .zip é aberto de forma totalmente diferente de um arquivo .vsix.

O arquivo .config não possui um tipo MIME especial. É realmente apenas um arquivo XML e o IE o renomeia para .xml. Infelizmente, ele deve ser usado em um programa que queira arquivos .config.

Por que o Internet Explorer está quebrando todos os tipos de coisas? Como pode ser impedido de fazer tal absurdo? Eu encontrei algo sobre um cabeçalho HTTP "X-Content-Type-Opções: nosniff" para o IE 8, mas isso não muda nada hoje, então eu suponho que seja errado ou também quebrado. Ou talvez eu só precise de mais três cabeçalhos agora?

    
por ygoe 03.05.2016 / 22:49

1 resposta

2

Use os seguintes cabeçalhos HTTP:

  • X-Download-Options: noopen
  • Content-Disposition: anexo; filename = untrustedfile.html

MIME-Handling: Force Save

Lastly, for web applications that need to serve untrusted HTML files, we have introduced a mechanism to help prevent the untrusted content from compromising your site’s security. When the new X-Download-Options header is present with the value noopen, the user is prevented from opening a file download directly; instead, they must first save the file locally. When the locally saved file is later opened, it no longer executes in the security context of your site, helping to prevent script injection.

Referências

por 09.02.2017 / 21:55