Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🔧 Como corrigir o erro "Desculpe, este tipo de ficheiro não é permitido por razões de segurança" no WordPress

🔧 Como corrigir o erro "Desculpe, este tipo de ficheiro não é permitido por razões de segurança" no WordPress

Faz o upload de um ficheiro para a biblioteca de multimédia do WordPress e recebe um aviso vermelho como resposta: «Sorry, this file type is not permitted for security reasons.» Um tipo de letra.woff para um design personalizado, um ícone SVG para um logótipo, um livro.epub para os utilizadores: o WordPress simplesmente recusa-se a aceitá-los.

O problema não é do seu ficheiro. O WordPress, de origem, filtra rigorosamente os tipos de dados que podem ser carregados. Este é um mecanismo de segurança integrado que protege o seu site de ficheiros potencialmente perigosos. Mas também bloqueia formatos perfeitamente legítimos de que precisa para o seu trabalho.

Abaixo estão três métodos funcionais para contornar a restrição: um rápido usando código no wp-config.php, um flexível usando um plugin e um especializado para gráficos SVG. Sem modificações no núcleo, sem riscos para o seu site.

💡 Visão geral rápida:

  • Remova as restrições do WordPress usando a constante ALLOW_UNFILTERED_UPLOADS no wp-config.php.
  • Instale o plugin Add MIME Types para adições precisas de formatos através do painel de administração.
  • Para gráficos SVG, use o Safe SVG com o seu sanitizador incorporado.

Porque é que o WordPress bloqueia o upload de ficheiros

O WordPress suporta dezenas de formatos de origem, mas não todos. O sistema verifica o tipo MIME de cada ficheiro carregado em relação a uma lista codificada de tipos permitidos. Se o tipo não for encontrado, vê a mensagem «Sorry, this file type is not permitted for security reasons.»

Mensagem de erro de tipo de ficheiro no WordPress

Por predefinição, o WordPress permite o upload das seguintes categorias:

Categoria

Extensões permitidas

Imagens

.jpg,.jpeg,.png,.gif,.ico,.webp

Vídeo

.mp4,.m4v,.mov,.wmv,.avi,.mpg,.ogv,.3gp,.3g2

Documentos

.pdf,.doc,.docx,.ppt,.pptx,.pps,.ppsx,.odt,.xls,.xlsx,.psd

Áudio

.mp3,.m4a,.ogg,.wav

Tudo o que não está na tabela (.woff/.woff2 para tipos de letra,.svg para gráficos vetoriais,.epub para ebooks,.json,.xml,.csv) é bloqueado pelo WordPress.

Um exemplo típico: está a adicionar um tipo de letra personalizado ao seu tema e tenta carregar um ficheiro .woff através da biblioteca de multimédia. O resultado:

Erro ao carregar ficheiro .woff para a biblioteca de media do WordPress

O ficheiro está no servidor, a extensão está correta, o conteúdo é seguro, mas o WordPress não reconhece o tipo MIME font/woff e rejeita-o. Existem três soluções.

Método 1: Código no wp-config.php (rápido, para qualquer formato)

O caminho mais curto é adicionar uma linha ao ficheiro de configuração do WordPress. A constante ALLOW_UNFILTERED_UPLOADS desativa a verificação do tipo MIME, permitindo-lhe carregar ficheiros de qualquer formato.

Antes de começar, faça uma cópia de segurança do seu site. Editar o wp-config.php diretamente é uma operação de baixo risco, mas o ficheiro é crítico para o funcionamento do WordPress.

Ligue-se ao seu servidor via FTP/SFTP (FileZilla, WinSCP ou o gestor de ficheiros do seu alojamento). O ficheiro wp-config.php está localizado na pasta raiz, no mesmo local das pastas wp-admin e wp-includes.

A editar ficheiro wp-config.php através de cliente FTP

Abra o wp-config.php e adicione a seguinte linha antes do comentário /* That's all, stop editing! Happy blogging. */:

1define('ALLOW_UNFILTERED_UPLOADS', true);
A colocar código ALLOW_UNFILTERED_UPLOADS no ficheiro wp-config.php

Guarde o ficheiro e volte a carregá-lo para o servidor se o tiver editado localmente. Depois, saia do painel de administração do WordPress e volte a iniciar sessão. Este passo é obrigatório; caso contrário, a configuração alterada não será aplicada.

Depois de iniciar sessão novamente, tente carregar o ficheiro. A restrição é removida.

Carregamento de ficheiro .woff bem-sucedido após remover a restrição

Vantagens deste método: é instantâneo, não requer plugins, funciona para qualquer formato. Desvantagem: abre os carregamentos para absolutamente tudo. A constante ALLOW_UNFILTERED_UPLOADS não distingue entre um .woff seguro e um ficheiro executável potencialmente perigoso. Se houver outros administradores ou autores no site, é melhor não usar este método.

Método 2: Plugin Add MIME Types (flexível, através do painel de administração)

Se não quiser mexer no wp-config.php ou precisar de um controlo preciso (apenas .woff e .svg, mas não .exe), use o plugin Add MIME Types no WordPress.org.

O plugin é mantido ativamente (versão 3.2.0, compatível com PHP 8.5 e WordPress 7.0) e não modifica ficheiros do núcleo. Apenas adiciona os tipos MIME necessários através do filtro padrão do WordPress.

Instale e ative o plugin e, em seguida, vá a Configurações → Add MIME Types. Verá uma lista de formatos já permitidos; o plugin apresenta-os a vermelho no final da lista.

Página de definições de tipos de ficheiro no plugin Add MIME Types

Para adicionar um novo tipo, introduza a extensão e o tipo MIME correspondente no campo. Por exemplo:

1woff = font/woff
2woff2 = font/woff2
3svg = image/svg+xml
4epub = application/epub+zip

Clique em Guardar alterações e o formato é adicionado. Verifique carregando um ficheiro do tipo pretendido para a biblioteca de multimédia. O WordPress aceitá-lo-á sem erro.

Vantagens: mais seguro do que a constante ALLOW_UNFILTERED_UPLOADS (adiciona apenas o que precisa), gestão através do painel de administração, as configurações são preservadas durante as atualizações do núcleo. Desvantagem: um passo a mais do que editar código.

Alternativa para SVG: Plugin Safe SVG

Se o único formato "não permitido" no seu site for SVG, existe uma solução especializada. O Safe SVG da equipa 10up não se limita a permitir carregamentos de gráficos vetoriais; ele higieniza cada ficheiro no momento do carregamento, removendo código XML/JavaScript potencialmente malicioso.

Plugin Safe SVG no directório do WordPress

Após a instalação, o plugin funciona sem configuração adicional: não são necessárias definições. Os ficheiros SVG ficam imediatamente disponíveis para carregamento e são exibidos corretamente na biblioteca de multimédia (incluindo pré-visualizações, que o WordPress não fornece para SVG por defeito).

O plugin está ativo em mais de 1 milhão de sites, é compatível com o WordPress 7.0 e é atualizado regularmente. Se o SVG for tudo o que precisa, o Safe SVG trata da tarefa de forma mais limpa do que um plugin MIME universal.

Aqui está um pequeno vídeo sobre o tema que demonstra claramente os três métodos para corrigir o erro no painel de administração do WordPress:

⁉️🤔 Perguntas frequentes

É seguro usar ALLOW_UNFILTERED_UPLOADS num site de produção?

Com reservas. A constante desativa completamente a verificação do tipo MIME. Qualquer utilizador com permissões de carregamento de ficheiros pode carregar qualquer coisa para a biblioteca de multimédia, incluindo scripts executáveis. Num site de produção com vários autores, use o segundo método (Add MIME Types) ou, pelo menos, limite quem tem acesso à biblioteca de multimédia.

Porque é que o WordPress não permite SVG por defeito?

O SVG é um documento XML, não uma imagem binária. Dentro de um ficheiro SVG pode haver JavaScript, manipuladores de eventos e tags <foreignObject>, o que abre um vetor para ataques XSS. É exatamente por isso que o núcleo do WordPress bloqueia o SVG, e plugins como o Safe SVG passam os ficheiros por um higienizador, removendo todo o código potencialmente perigoso e deixando apenas os gráficos.

Depois de adicionar o código ao wp-config.php, o erro mantém-se. O que devo fazer?

Existem três causas prováveis. Primeira: não saiu e voltou a entrar no painel de administração. A configuração é armazenada em cache pela sessão, pelo que é necessário um novo início de sessão. Segunda: o ficheiro foi carregado para o local errado. O wp-config.php deve estar na raiz do site, não em /wp-content/ ou /wp-admin/. Terceira: está ativo no site um plugin de segurança (Wordfence, Solid Security) que interceta os carregamentos independentemente da constante. Verifique as configurações dos mesmos.

Posso permitir carregamentos apenas para um utilizador?

Não através da constante ALLOW_UNFILTERED_UPLOADS; a constante é global. O plugin Add MIME Types também se aplica a todos os perfis com a capacidade upload_files. Para acesso seletivo, use o filtro upload_mimes no functions.php com uma verificação current_user_can(), mas isso já é desenvolvimento personalizado.

O que devo fazer se o plugin Add MIME Types não funcionar para o meu formato?

Alguns formatos exigem uma correspondência exata do tipo MIME que a função PHP finfo_file determina no seu servidor. Este pode diferir do tipo "padrão". Nas configurações do plugin, ative a opção "Enable to debug output for file types recognized by WordPress", carregue o ficheiro e veja qual o tipo MIME que o servidor realmente determinou. Depois, introduza exatamente esse tipo. Após a verificação, desative o modo de depuração.

Remover o bloqueio: qual o método a escolher

Lógica de seleção em três passos:

  • Precisa de carregar um ficheiro agora mesmo? Edite o wp-config.php. Demora 30 segundos e a restrição desaparece. Não se esqueça de remover ou comentar a linha depois, se o site for público.

  • Carrega formatos específicos com regularidade? O Add MIME Types é mais seguro, mais visual e não é reposto quando o núcleo do WordPress é atualizado.

  • Trabalha apenas com SVG? O Safe SVG é uma ferramenta especializada com um sanitizador que não se limita a «permitir», também limpa. Para tudo o resto, utilize o primeiro ou o segundo método.

O erro «Sorry, this file type is not permitted» não é um bug, mas sim uma restrição intencional. No entanto, o WordPress deixou formas legítimas de a contornar. Escolha a mais adequada e volte ao trabalho. 🔗 Add MIME Types no WordPress.org | 🔗 Safe SVG no WordPress.org