Impedir que o Internet Explorer renomeie downloads

Impedir que o Internet Explorer renomeie downloads

Eu coloquei umpágina da Internetisso explica como configuro minhas configurações do Visual Studio. Isso inclui downloads de extensões .vsix (o "Download" em "Erweiterungen installieren", "Guias de recuo") ou arquivos .config (mais abaixo como "CodeMaid.config").

O Internet Explorer e o Edge são os únicos dois navegadores que alteram deliberadamente 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 web manda e salva o arquivo baixado com o nome especificado.

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

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

Por que o Internet Explorer está quebrando todo tipo de coisa? Como pode ser impedido de fazer tal absurdo? Encontrei algo sobre um cabeçalho HTTP "X-Content-Type-Options: nosniff" para o IE 8, mas isso não muda nada hoje, então suponho que esteja errado ou quebrado. Ou talvez eu só precise de mais três cabeçalhos agora?

Responder1

Use os seguintes cabeçalhos HTTP:

  • Opções de download do X: noopen
  • Disposição do conteúdo: anexo; nome do arquivo = arquivo não confiável.html

Tratamento MIME: Forçar Salvamento

Por último, para aplicações web que precisam servir arquivos HTML não confiáveis, introduzimos um mecanismo para ajudar a evitar que conteúdo não confiável comprometa a segurança do seu site. Quando o novo cabeçalho X-Download-Options está presente com o valor noopen, o usuário é impedido de abrir um download de arquivo diretamente; em vez disso, eles devem primeiro salvar o arquivo localmente. Quando o arquivo salvo localmente for aberto posteriormente, ele não será mais executado no contexto de segurança do seu site, ajudando a evitar a injeção de script.

Referências

informação relacionada