Cloudflare
A Cloudflare protege seu site solicitando que os visitantes passem por uma verificação de segurança antes de permitir o acesso. Um navegador passa por essa verificação silenciosamente. O aplicativo WCPOS não é um navegador: ele se comunica com a REST API da sua loja e, quando a Cloudflare responde a essas chamadas com uma página de verificação de segurança em vez de dados, o aplicativo não consegue se conectar.
Esta página explica como identificar o problema e como configurar a Cloudflare para permitir o acesso do aplicativo. Todas as etapas são destinadas ao proprietário da loja ou a quem administra a conta da Cloudflare do site.
Como identificar o problema
- A tela de conexão mostra “A configuração de hospedagem desta loja está bloqueando o aplicativo” com o código de erro HOST121.
- O aplicativo para computador abre uma pequena janela “Verificação de segurança para your-store.com” durante a conexão ou sincronização.
- Versões mais antigas exibiam “O site não parece ser um site WordPress” ou “O site demorou muito para responder” mesmo quando o site estava claramente on-line.
- A impressão na nuvem é interrompida com a mensagem “um serviço de segurança está bloqueando o WCPOS Cloud Print”.
Para confirmar, abra um terminal e execute:
curl -sI https://your-store.com/wp-json/
Uma loja bloqueada responde com o status 403 e o cabeçalho cf-mitigated: challenge. Uma loja funcionando responde 200 com content-type: application/json. Se você receber 404, seu site não usa links permanentes amigáveis; execute a mesma verificação em 'https://your-store.com/?rest_route=/' em vez disso. Se o WordPress estiver em uma subpasta, inclua-a: https://example.com/shop/wp-json/.
Versões recentes do aplicativo para computador concluem a verificação da Cloudflare em uma pequena janela, quando possível. Isso permite que você continue trabalhando, mas a liberação concedida pela Cloudflare expira (30 minutos por padrão) e a verificação volta a aparecer. Considere essa janela uma solução temporária e aplique a correção abaixo.
Qual recurso da Cloudflare está causando o problema
A correção depende do recurso que está desafiando o aplicativo. Verifique estes itens no painel da Cloudflare do seu site. A Cloudflare está reorganizando os menus; os caminhos antigos aparecem entre parênteses.
| Recurso | Onde | É possível isentar a API? |
|---|---|---|
| Bot Fight Mode (plano Free) | Security → Settings → Bot traffic (painel antigo: Security → Bots) | Não. A Cloudflare não permite que regras Skip ou Allow o ignorem. Desative-o ou faça upgrade para o Pro e use o Super Bot Fight Mode, que pode ser isentado pela regra Skip abaixo. |
| Under Attack Mode | O botão “Under Attack Mode” na página Visão geral do site ou Security → Settings | Sim. A regra Skip abaixo ignora Security Level, que é elevado pelo Under Attack Mode. Ou desative o Under Attack Mode quando o ataque terminar. |
| Super Bot Fight Mode (Pro ou superior) | Security → Settings → Bot traffic (painel antigo: Security → Bots) | Sim, usando a regra Skip abaixo. |
| Regras personalizadas ou gerenciadas do WAF definidas como Managed Challenge | Security → Security rules (painel antigo: Security → WAF) | Sim, usando a regra Skip abaixo, posicionada acima de qualquer regra personalizada que apresente um desafio. As regras gerenciadas sempre são executadas depois das regras personalizadas, então a ordem não importa para elas. |
O plugin oficial da Cloudflare para WordPress pode alternar o Under Attack Mode e ativar o WAF, mas não pode criar regras Skip. Elas ficam no painel da Cloudflare.
Adicione uma regra Skip para a REST API
Esta é a correção para todos os casos, exceto o Bot Fight Mode. Ela instrui a Cloudflare a não apresentar desafios às solicitações da REST API da sua loja. As próprias verificações de login e permissão do WordPress continuam protegendo esses endpoints.
-
No painel da Cloudflare, abra seu site e acesse Security → Security rules (painel antigo: Security → WAF → Custom rules); em seguida, escolha Create rule → Custom rules.
-
Dê o nome
WCPOS REST APIà regra. -
Em When incoming requests match, escolha Edit expression e cole:
(starts_with(http.request.uri.path, "/wp-json/")) or (http.request.uri.path eq "/" and (starts_with(http.request.uri.query, "rest_route=") or http.request.uri.query contains "&rest_route="))A segunda parte corresponde ao endereço alternativo do WordPress,
/?rest_route=/..., e somente à raiz do site. Assim, uma stringrest_route=inserida na consulta de outra página não desativa a proteção dessa página. Se o WordPress estiver em uma subpasta, comohttps://example.com/shop, use/shop/wp-json/e/shop/no lugar de/wp-json/e/. -
Em Then take action, escolha Skip.
-
Marque All remaining custom rules. Na lista de componentes a ignorar, marque All Super Bot Fight Mode rules e Security Level. Marque All managed rules somente se uma regra gerenciada estiver apresentando o desafio e não altere nenhuma entrada marcada como “(Previous version)”.
-
Implante a regra. Se houver outras regras personalizadas que apresentem desafios ou bloqueiem solicitações, verifique se esta está posicionada acima delas.
Execute novamente a verificação com curl. O cabeçalho cf-mitigated deve desaparecer, e a resposta deve ser JSON.
Se a verificação com curl ainda mostrar um desafio depois de adicionar a regra Skip e o Bot Fight Mode estiver ativado, a causa é o Bot Fight Mode. No plano Free, a única correção é desativá-lo em Security → Settings → Bot traffic. A documentação da própria Cloudflare confirma que nenhuma regra pode ignorá-lo. Se o Bot Fight Mode já estiver desativado, consulte Ainda está bloqueado?.
Cache
A Cloudflare também pode armazenar em cache as respostas da REST API, fazendo o aplicativo exibir produtos e pedidos desatualizados. A regra Skip acima não altera o cache. Se você usa o cache da Cloudflare para páginas HTML ou o Automatic Platform Optimization, adicione uma Cache Rule que defina Bypass cache para a mesma expressão.
Ainda está bloqueado?
Verifique se a regra Skip foi implantada, em vez de salva como rascunho, e se nenhuma regra IP Access bloqueia a rede do caixa. Outros serviços que ficam na frente do seu site funcionam de maneira semelhante à Cloudflare: consulte Conflitos entre plugins para plugins de segurança e as notas sobre hospedagem para GoDaddy, WP Engine e outros.