Hoje precisei disponibilizar um executável para download em um site, como o arquivo é parte de documentação de intranet o melhor era manter no servidor da empresa mesmo, subi o arquivo, abri a documentação e tentei acessar o link para download, porém acontecia um problema.
Continuando a minha saga que rendeu o tutorial para instalar e rodar PHP no IIS, hoje vou explicar como permitir o download e a execução de aplicativos no IIS.
O problema
Quando tentava acessar qualquer arquivo executável (.exe) o IIS retornava um erro (403). Isso pode acontecer por dois motivos:
– Não existe permissão para executar um aplicativo (.exe)
– A extensão (.exe) não está cadastrada nos MIME Types do IIS
Possíveis soluções
Antes de começar a solucionar o problema você precisa saber o que você quer, que o usuário tenha permissão de executar o aplicativo no servidor ou que o usuário faça o download do arquivo?
Não preciso dizer que a primeira opção é perigosa, já que o se o usuário pode executar scripts no servidor ele pode tentar fazer upload de executáveis maliciosos e forçar o servidor a executá-los, lhe causando uma série de problemas, dores de cabeça e necessidades de backups. Mas, vamos lá…
Permitindo que o usuário faça o download de executáveis
Para permitir que o IIS "reconheça" um .exe como um arquivo para download você precisa primeiro alterar as permissões do site em questão.
Ele não pode utilizar a permissão "Scripts and Executables". Altere somente para scripts, ou para nenhum.
Fazendo isso o IIS não mais tentará executar arquivos ".exe" no servidor, visto ele não terá mais permissão para tal. Porém para não dar erro você precisa cadastrar a extensão .exe nos MIME Types do IIS.
Para isso vá na aba HTTP Headers, clique em MIME Types.
Na janela que abrir adicione e extensão .exe como application/actet-stream
Pronto, agora quando seus usuários clicarem em algum link de executável o IIS enviará a requisição para download para o usuário! 🙂
Para executar aplicativos pelo IIS
Isso pode ser prejudicial para a segurança do seu servidor, só habilite essa permissão se você REALMENTE souber o que está fazendo.
Na opção "Execute Permissions" na aba Home Diretory das propriedades do site, selecione "Scripts and Executables". Você está dando permissão para executar aplicativos no servidor, porém você precisa também dar permissões para o usuário do IIS, faça isso nas pastas onde ficarão os executáveis.
Espero que esse tutorial ajude, qualquer dúvida ou crítica nos comentários que eu melhoro-o de acordo com as contribuções! 🙂
Deixe um comentário