Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite galera.
Estou com um sério problema de segurança na validação dos arquivos que faço upload, já pesquisei muito e só encontrei as maneiras mais comuns.
Veja alguns exemplos de validação de upload.
UPLOAD DE IMAGENS
1º Situação: Tenho q vefiticar o tipo do arquivo usando $_FILES["imagem"]["type"] e se retornar image/jpg, image/gif, image/png... é verdadeiro.
FALHA: Se renomear a extensão do arquivo "teste.txt" para "teste.jpg" ele ja passa nessa 1º verificação apenas mascarando o arquivo.
2º Situação: Como toda imagem é composta por pixels posso usar getimagesize($_FILES["imagem"]["tmp_name"]) e se retornar as medidas é verdadeiro.
CONCLUSÃO: Para imagens não encontrei outra meneira melhor de validar imagens, pois mesmo se renomear a extensão do arquivo como no 1º exemplo ele não terá pixels.
UPLOAD DE OUTROS ARQUIVO
Situação: A unica maneira que encontrei foi usar $_FILES["imagem"]["type"], mas como mostrado no exemplo anterior, essa função tem a falha do renomeio da extensão do arquivo.
PERIGO: Um arquivo exe, php, py, ou qualquer outro tipo pode quebrar está verificação apenas um o renomeio da extensão.
Penssei em usar a função fopen() e validar o código fonte, mas alem de não saber como fazer essa validação, não sei se é seguro abrir o arquivo caso ele esteja mascarado.
Alguem sabe outra maneira de validação com segurança?
Carregando comentários...