Como corrigir o checkout bloqueado pelo firewall do All in One Security no WooCommerce
O que é o checkout bloqueado pelo AIOS no WooCommerce?
O All in One Security (AIOS) traz um firewall em camadas (Básico, Intermediario e Avancado) que inspeciona requisicoes antes de chegarem ao WordPress. O checkout do WooCommerce envia POSTs grandes, com endereco, dados de cobranca e respostas de gateway, e dispara chamadas AJAX para admin-ajax.php e para a Store API. Quando uma regra avancada do AIOS interpreta esse tráfego legitimo como ataque, ela devolve 403 Forbidden e o cliente nunca finaliza a compra.
Como identificar
- O cliente clica em ‘Finalizar compra’ / ‘Place order’ e a tela mostra ‘Forbidden’ ou ‘Acesso negado’, com código 403 no navegador.
- Na aba Rede do navegador (F12), a chamada para admin-ajax.php ou para a rota wc/store/v1/checkout retorna status 403.
- O checkout funciona com o AIOS desativado e volta a falhar assim que o plugin e reativado.
- O log do firewall em WP Security registra a entrada bloqueada com o IP do cliente no exato momento da tentativa de pagamento.
- Pedidos ficam presos em ‘Pagamento pendente’ porque o callback (IPN/webhook) do gateway também e barrado pelo firewall.
Como prevenir
- Ative regras intermediarias e avancadas do AIOS uma de cada vez, testando um pedido de checkout a cada ativacao.
- Mantenha na allowlist do firewall o seu IP de gestão e as faixas de IP dos webhooks dos gateways de pagamento que você usa.
- Em staging, rode o firewall no nível máximo e simule uma compra completa antes de aplicar a mesma configuração na loja ao vivo.
- Monitore o log do firewall do AIOS semanalmente para pegar bloqueios de clientes legitimos antes que virem carrinho abandonado.
Causa
- Filtro de string avancado (Advanced Character String Filter) do AIOS barrando parametros legitimos do POST de checkout que contem caracteres como aspas, colchetes ou cifrao nos dados de cobranca.
- Regras 6G / 6G blacklist do AIOS bloqueando o método POST ou query strings da rota admin-ajax.php usada pelo checkout AJAX do WooCommerce.
- Regra de bloqueio de métodos de requisicao ou de proxy do AIOS rejeitando os callbacks de gateway (IPN/webhook) vindos de IPs externos como PayPal, Stripe ou Mercado Pago.
- 404 Detection / Login Lockout do AIOS marcando o IP do cliente como malicioso depois de vários POSTs seguidos e bloqueando o checkout no meio do fluxo.
- Pais do cliente barrado pelo Country Blocking do AIOS, derrubando a requisicao de pagamento antes de chegar ao gateway.
Como resolver
- Confirme que o bloqueio e do AIOS: reproduza o checkout com o painel de Rede do navegador aberto e anote a rota que retorna 403; depois compare com o log do firewall do AIOS no mesmo horario. Se o IP do comprador aparece bloqueado no momento do pagamento, o firewall e a causa.
WP Security -> WAF -> Firewall logs WP Security -> Brute Force -> 404 Detection - Isole a regra avancada que quebra o checkout: volte o firewall para o nível Básico, confirme que o checkout volta a funcionar e reative as regras Intermediarias e Avancadas uma de cada vez, testando uma compra a cada ativacao, conforme orienta a documentação do AIOS. A regra que derruba o checkout ao ser ligada e a culpada.
WP Security -> WAF -> Basic Firewall Rules WP Security -> WAF -> Additional Firewall Rules WP Security -> WAF -> 6G Blacklist Firewall Rules - Desligue o filtro de string avancado para o checkout: se a regra culpada for o Advanced Character String Filter, desative essa opção específica em vez de baixar o firewall inteiro, porque ela e a que mais barra dados legitimos de cobranca.
WP Security -> WAF -> Additional Firewall Rules -> Advanced Character String Filter -> Off - Libere o IP do gateway e o seu IP de teste: adicione na allowlist do AIOS o seu próprio IP e a faixa de IPs de callback do gateway de pagamento para que os webhooks de confirmacao não sejam barrados pelo firewall nem pelo 404 Detection.
WP Security -> Brute Force -> 404 Detection -> IP Whitelist WP Security -> Settings -> Allowlist - Valide o ciclo de compra de ponta a ponta: faca um pedido real de baixo valor, confirme que o status muda de 'Pagamento pendente' para 'Processando' e cheque o log do gateway para garantir que o webhook chegou sem 403.
WooCommerce -> Pedidos WooCommerce -> Status -> Logs
# .htaccess — libera as rotas dinamicas do checkout WooCommerce do firewall AIOS
# (cole ACIMA do bloco '# BEGIN All In One WP Security' gerado pelo plugin)
<IfModule mod_rewrite.c>
RewriteEngine On
# nao deixa o firewall por .htaccess do AIOS inspecionar o POST do checkout
RewriteCond %{REQUEST_URI} (/wp-admin/admin-ajax.php|/wp-json/wc/store/) [NC]
RewriteRule .* - [L]
# libera o callback do gateway (ajuste o caminho do webhook do seu provedor)
RewriteCond %{REQUEST_URI} (/wc-api/|/?wc-ajax=checkout) [NC]
RewriteRule .* - [L]
</IfModule>














