Implicações de segurança do sistema de upload de arquivos PHP

1

Eu construí um pequeno sistema de upload usando PHP, está funcionando bem por enquanto, no entanto, o problema que eu tenho é o jeito que eu tenho para trabalhar.

Eu não tenho muito conhecimento em segurança, mas é o que estou tentando aprender no momento.

Então, para que o sistema de upload de arquivos funcionasse, eu precisava alterar as permissões para uma pasta na qual eu queria colocar o arquivo.

Então eu tenho um servidor windows, localizei a pasta > clique com o botão direito > propriedades > segurança > editar

Aqui há uma lista de 5 grupos

  • CRIADOR
  • SISTEMA
  • Administradores
  • Usuários
  • TrustedInstaller

Então, quando estou fazendo upload de um arquivo, ele é enviado para os arquivos temporários e, em seguida, o sistema move o arquivo para o local correto, digamos / vids.

Originalmente, as permissões do grupo "Usuários" eram definidas como "negar" na permissão de gravação, o que significa que quando o sistema tenta mover o arquivo, recebe um erro de permissão.

Então eu altero a permissão de gravação do grupo "Usuários" para "permitir" a gravação e o upload e a movimentação do arquivo funcionam bem. No entanto, estou preocupado que isso seja uma má prática do ponto de vista da segurança?

O que eu veria é que, se ele tiver permissão de gravação, um invasor pode colocar um script nesse local e executá-lo, isso está correto? Se sim, como faço para contornar isso e torná-lo mais seguro?

    
por ragebunny 22.07.2013 / 11:30

1 resposta

1

Um invasor certamente pode fazer upload de alguma forma de código malicioso e executá-la, mas há algumas maneiras de atenuar isso. Não permita o acesso aos arquivos diretamente, mas apenas através de algum tipo de script intermediário. Restringir uploads apenas a alguns tipos de arquivos selecionados (tipos de imagem ou apenas arquivos de texto, etc.). E se eu entendi sua pergunta, as permissões não são o motivo para se preocupar.

    
por 22.07.2013 / 12:31