Segurança em upload de arquivos no PHP

Normalmente usa-se o metodo de verificar a extensão de um arquivo para validação antes de ser enviado ao servidor. Esse metodo pode ser facilmente burlado, como pude comprovar quando tentaram enviar exploids para meu servidor no arquivo de exemplo que deixei no post sobre Upload de arquivos com o Flash 8.
Antes que o Wendel quebre minhas pernas, resolvi pesquisar outros meios para fazer upload seguros de arquivos. Encontrei esse artigo bem interessante no PHPBRASIL. Basicamente antes de fazer o upload, verifica-se o Mime Type do arquivo, por exemplo:

  1. if($_FILES['userfile']['type'] == 'application/x-shockwave-flash'){
  2. //arquivo flash por ser enviado
  3. }else{
  4. //arquivo não é do tipo Flash :õ(
  5. }

Sendo assim, não se deve verificar somente a extensão dos arquivos para garantir maior segurança para seu servidor. Segue uma lista dos Mime Types disponiveis.

Para saber mais
Gerenciar o upload de arquivos:
http://www.php.net/manual/pt_BR/features.file-upload.php

Mime Types
http://www.webmaster-toolkit.com/mime-types.shtml

Upload de imagens com segurança
http://www.phpbrasil.com/articles/article.php/id/707

Flash, PHP, Principal

2 comments


  1. Belo artigo, ainda mais que estou desenvolvendo algo neste gênero … a galera só quer script pronto e não desenvolve e nem estuda o scritp pronto …. cruel … parabéns pelo blog.

    Segue minha e-commerce:
    http://www.supertech-comp.com.br

  2. Post muito bom para programadores novatos como eu q naum entendem de segurança em PHP….xD

    Vlws ^^

Leave a Reply