Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
qual a forma mais segura de filtrar um upload asp de arquivos para somente imagens?
Tentei reconhecer a extensão do arquivo e limitar apenas upload de arquivo .gif/.jpg e também filtrar pelo tipo de arquivo. Porém algum mal intencionado pode simplesmente renomear um arquivo malicioso para .gif, fazer o upload e depois acessar o arquivo para executa-lo. Alguém conhece ou recomenda algum filtro eficiente?
Utilize os seguintes recursos:
For Each File in Upload.Files
If File.ContentType <> "image/gif" Then
Resposta = "Arquivo enviado nao e um formato valido de imagem."
File.Delete
End If
Next
For Each File in Upload.Files
If UCase(Right(File.Path, 3)) <> "gif" Then
Resposta = "Arquivo enviado nao e um formato valido de imagem."
File.Delete
End If
Next
Após muita pesquisa cheguei a conclusão de que não é possível limitar o upload de arquivos pelo tipo. Pois ao alterar a extensão do arquivo de .php para .gif por exemplo o filtro não irá barrar.
Como solução para evitar vulnerabilidades, o ideal é se certificar de dar apenas permissão de leitura e escrita na pasta que receberá os arquivos do upload e nunca liberar permissão de execução. Pois assim mesmo que um arquivo malicioso seja enviado, ele não poderar ser executado. Instruções aqui: https://wiki.locaweb.com.br/pt-br/Permissão_de_arquivos_–_Como_se_proteger_da_execução_de_scripts_indesejados
Além disso a instalação de uma ferramenta como o Eset File Security no servidor, é essencial para varrer arquivos maliciosos.