Ola pessoal estou criando um sistema de upload de apenas arquivos em PDF. Como se trata de um sistema de usuarios, para que usuarios cadastrados no site possam enviar arquivos, gostaria deste recurso com total segurança, e gostaria de saber se a forma que estou fazendo upload tem alguma vulnerabilidade:
// Upload de PDF $pathToSave = "../pdf/"; if( $_FILES ) { // Verificando se existe o envio de arquivos. if( $_FILES['pdf'] ) { // Verifica se o campo não está vazio. $dir = $pathToSave; // Diretório que vai receber o arquivo. $tmpName = $_FILES['pdf']['tmp_name']; // Recebe o arquivo temporário. $name = $_FILES['pdf']['name']; // Recebe o nome do arquivo. preg_match_all('/\.[a-zA-Z0-9]+/', $name , $extensao); if(!in_array(strtolower(current(end($extensao))), array('.pdf', '.PDF', '.Pdf'))) { $msg = 'Permitido apenas arquivos PDF'; } // move_uploaded_file( $arqTemporário, $nomeDoArquivo ) if( move_uploaded_file( $tmpName, $dir . $name ) ) { // move_uploaded_file irá realizar o envio do arquivo. $erro = 0; } else { $erro = 1; } } }
Podem me passar dicas de como melhorar a segurança deste Upload? Lembrando que pode ser enviado apenas arquivos em PDF.
Obrigado!