Como corrigir o bloqueio de upload de arquivos entre o All In One Security e o WPForms no WordPress
O que é bloqueio de upload entre AIOS e WPForms?
O AIOS bloqueia upload no WPForms quando uma camada de proteção do All In One Security intercepta a requisicao que carrega o arquivo do formulário antes dela chegar ao WordPress. O WPForms usa um campo File Upload que envia o anexo por uma requisicao POST (no modo classico, AJAX para o admin-ajax.php; no modo moderno, um upload incremental antes do submit). Quando uma regra do AIOS considera essa requisicao suspeita, ela e barrada e o usuário ve um erro de envio ou um 403, mesmo com o resto do formulário funcionando.
A documentação oficial do All In One Security avisa que os recursos intermediarios e avancados podem quebrar o site se entrarem em conflito com outro plugin ou tema, e recomenda backup antes de ativa-los. As funções que mais causam esse bloqueio são o firewall avancado (regras 6G/6G blacklist), o filtro avancado de strings de caracteres, a proteção que impede execução e upload de arquivos PHP no diretório de uploads e o bloqueio de bad query strings, todas pensadas para barrar upload malicioso, mas que também podem barrar o anexo legitimo do WPForms.
Como identificar
- O envio do formulário retorna a mensagem do WPForms ‘Form has not been submitted, please see the errors below’ sem detalhar a causa, e o anexo nunca chega.
- Ao anexar o arquivo aparece um erro HTTP, geralmente ‘403 Forbidden’, vindo do servidor antes do WordPress processar o envio.
- Formulários sem campo de upload enviam normalmente, mas qualquer formulário com o campo File Upload do WPForms falha sempre.
- Arquivos PHP ou arquivos com extensão incomum são recusados enquanto imagens pequenas as vezes passam, indicando bloqueio por tipo e não por tamanho.
- No console do navegador o request do upload para admin-ajax.php ou para o endpoint do WPForms retorna 403 ou e cancelado pelo servidor.
- O log de eventos do AIOS, em WP Security, registra a requisicao do envio como bloqueada pelo firewall no mesmo horario da tentativa de upload.
Como prevenir
- Ative os recursos avancados do AIOS de forma gradual e teste o envio de formulários com anexo logo após cada ativacao, conforme a própria doc do plugin recomenda.
- Mantenha no campo File Upload do WPForms apenas as extensões que você realmente aceita, reduzindo a chance de um tipo de arquivo cair em alguma regra do AIOS.
- Documente quais regras do firewall do AIOS precisaram de excecao para o WPForms, para não reativa-las por engano em uma futura revisao de segurança.
- Monitore o log de eventos do AIOS após cada atualização do AIOS ou do WPForms, já que mudancas no endpoint de upload podem voltar a esbarrar em uma regra existente.
- Prefira ajustar regras especificas a desligar o firewall inteiro, mantendo a proteção contra upload malicioso enquanto libera o anexo legitimo do formulário.
Causa
- As regras 6G blacklist do firewall do AIOS, no menu WP Security > Firewall, barram a query string ou o user agent da requisicao de upload do WPForms por considera-la padrão de ataque, devolvendo 403 ao anexo.
- A proteção 'Prevent execution of PHP files in the uploads directory' do AIOS grava regra no .htaccess da pasta wp-content/uploads e impede que o WPForms escreva ou sirva o arquivo enviado a partir desse diretório.
- O filtro avancado de strings de caracteres (Advanced character string filter) do firewall do AIOS interpreta o conteúdo binario do arquivo ou o nome com caracteres especiais como string maliciosa e bloqueia o POST inteiro.
- A regra 'Deny bad query strings' do AIOS rejeita o request de upload do WPForms quando o nome do arquivo ou os parametros do AJAX contem caracteres que a regra trata como suspeitos.
- O bloqueio de upload de arquivos PHP ou de extensões não permitidas pelo AIOS recusa anexos cujo tipo MIME não esta na lista liberada, mesmo quando o WPForms permite aquela extensão no campo File Upload.
- Uma regra de bloqueio por 404 ou por user agent do AIOS coloca em lockout o IP do visitante durante o envio, derrubando a requisicao de upload junto com o restante da navegação.
Como resolver
- Confirme que o bloqueio vem do AIOS: Desative temporariamente o All In One Security e tente o upload de novo no formulário. Se o anexo passar com o AIOS desativado, o bloqueio e dele e você isola a camada certa antes de mexer em qualquer regra.
Painel WP -> Plugins -> Plugins Instalados Desative 'All-In-One Security (AIOS)' e refaca o envio do formulário Reative o AIOS após confirmar que o upload volta a funcionar sem ele - Identifique a regra que bloqueou no log do AIOS: Abra o log de eventos e de IPs bloqueados do AIOS e procure a entrada no mesmo horario da tentativa de upload. O log mostra se quem barrou foi o firewall, o filtro de strings ou um lockout de IP, evitando desligar a proteção errada.
Painel WP -> WP Security -> Audit log / Logs Procure a requisicao de envio do formulário marcada como bloqueada no horario do teste Anote o tipo de regra citada (firewall, character string filter ou lockout de IP) - Ajuste o firewall do AIOS de básico para um nível que não barre o POST: No firewall do AIOS, desligue as regras 6G blacklist e o filtro avancado de strings de caracteres e mantenha apenas o nível de firewall básico. A própria doc do AIOS avisa que recursos avancados podem quebrar funcionalidades ao conflitar com outro plugin, entao reduza o nível antes de retestar.
Painel WP -> WP Security -> Firewall Desative '6G Blacklist Firewall Rules' e 'Advanced character string filter' Salve e tente o upload novamente no formulário - Reveja a proteção de PHP no diretório de uploads: Se o WPForms grava o anexo em wp-content/uploads, a proteção do AIOS que bloqueia PHP nesse diretório pode atrapalhar. Desligue essa proteção temporariamente para testar; se resolver, prefira uma regra mais específica que libere o caminho do WPForms em vez de manter o bloqueio total.
Painel WP -> WP Security -> Filesystem Security Desative 'Prevent execution of PHP files in the uploads directory' e retire a regra do .htaccess de uploads se necessário Refaca o upload e confirme se o anexo e gravado e servido - Libere as extensões de arquivo no campo do WPForms: Abra o campo File Upload do formulário no WPForms e confirme que as extensões que você quer receber estão na lista de permitidas. Casar a lista do WPForms com o que o AIOS deixa passar evita que o tipo MIME do anexo seja recusado por uma das duas camadas.
Painel WP -> WPForms -> abra o formulário -> clique no campo File Upload Em Advanced, ajuste 'Allowed File Extensions' apenas para os tipos seguros que você aceita Salve o formulário e teste o envio de um arquivo de cada extensão liberada - Reative as protecoes uma a uma: Com o upload funcionando, ligue de volta as regras do AIOS uma de cada vez e teste o envio após cada uma. Assim você mantem a maior proteção possível e identifica exatamente qual regra precisa de excecao para o WPForms.
Painel WP -> WP Security -> Firewall -> reative cada regra isoladamente Após cada reativacao, envie o formulário com anexo e observe o log do AIOS Deixe desativada somente a regra que volta a bloquear o upload
# .htaccess em wp-content/uploads/wpforms/
# Permite servir os anexos do WPForms sem reabrir execucao de PHP no resto da pasta.
# Use apenas se a protecao do AIOS estiver barrando o caminho do WPForms.
<IfModule mod_authz_core.c>
# Apache 2.4: libera o acesso aos arquivos enviados pelo formulario
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from all
</IfModule>
# Mantem o bloqueio de execucao de PHP, mesmo liberando o download dos anexos
<FilesMatch ".(php|php5|php7|phtml|pht)$">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
</FilesMatch>














