Bot Management
O Bot Management separa gente de script no seu site e decide o que cada visitante recebe: passa, é desafiado ou é barrado. Ele dá uma nota a cada visitante a partir dos sinais do próprio navegador, desafia as páginas que você escolhe com uma prova de trabalho que o navegador resolve sozinho, deixa entrar os robôs de busca verificados e barra impostores, robôs de IA e scanners.
Como ligar
Seção intitulada “Como ligar”O Bot Management roda no conector, então funciona do mesmo jeito em cada um, com duas exceções:
| Conector | O que funciona |
|---|---|
| Proxy do Qlyne | Tudo desta página |
| Hospedado pelo Qlyne | Tudo desta página |
| Worker da Cloudflare | Tudo, menos a detecção de impostores e o desafio para navegadores que nunca rodaram o script. A impressão TLS precisa do Bot Management da própria Cloudflare (Enterprise). |
O captcha para qualquer formulário funciona em qualquer site, com ou sem conector.
- Conecte o site (Escolha a integração).
- Abra o site e vá em Bot Management › Configuração.
- Escolha um nível de proteção e, se precisar, ajuste em Avançado.
- Deixe Conector › Configuração, “Modo”, em “Só observando” por um ou dois dias, depois passe para “Aplicar”.
As mudanças chegam ao conector em até um minuto.
Níveis de proteção
Seção intitulada “Níveis de proteção”O nível no topo de Bot Management › Configuração preenche os campos de Avançado e salva. Mude qualquer um deles à mão e o nível aparece como “Personalizado”.
| Campo | Básico | Equilibrado | Agressivo |
|---|---|---|---|
| Dificuldade | 3 | 4 | 5 |
| Clique para confirmar | Nunca | Nunca | Na dúvida |
| Dar nota aos visitantes | desligado | ligado | ligado |
| Nota média, de 30 a 59 | Nada | Nada | Desafio |
| Nota alta, 60 ou mais | Nada | Desafio | Bloquear |
| Robôs de IA | nenhum | treino | treino e busca com IA |
| Caminhos da armadilha | nenhum | segredos, ferramentas de admin | segredos, ferramentas de admin |
| Bloquear por (armadilha) | 1 hora | 1 hora | 24 horas |
Tor e reputação compartilhada seguem o nível de WAF & Firewall: o Básico deixa o Tor em paz e só avisa o seu app sobre endereços da lista; o Equilibrado desafia os dois; o Agressivo bloqueia os dois.
O nível nunca mexe no que é do seu site: rotas com desafio, rotas que exigem a nota, a página isca, os seus caminhos de armadilha, a validade do desafio, “Desafiar navegadores que nunca rodaram o script” e o modo sob ataque.
“Usar o conjunto recomendado”, ao lado de Salvar as regras, liga a armadilha para segredos e ferramentas de admin e barra os robôs que treinam IA. No Pro, também desafia /checkout*, /login e /signup (se você ainda não tem rotas com desafio), liga a nota e desafia a nota alta.
No Free, os campos do Pro que o nível preenche ficam salvos e passam a valer quando a conta estiver no Pro.
Configuração
Seção intitulada “Configuração”Tudo abaixo fica em Bot Management › Configuração, Avançado, menos o Tor e a reputação compartilhada, que ficam em WAF & Firewall › Configuração.
Desafio (Pro)
Seção intitulada “Desafio (Pro)”Uma prova de trabalho que o navegador resolve antes de a página abrir. A pessoa vê uma página curta, “Verificando o navegador”, que segue sozinha; o script precisa fazer a conta ou para ali.
- “Rotas com desafio”: páginas que os robôs procuram, como
/checkout*,/login,/signup.*no fim cobre tudo abaixo. - “Dificuldade”, de 1 a 6: cada passo multiplica o trabalho por 16. No 4 leva cerca de um segundo num celular; no 5, até 15 segundos. É o ponto de partida: sobe no modo sob ataque e para o endereço que pede muitos desafios em 10 minutos.
- “Validade, em minutos”, de 5 a 1440 (30 por padrão): quanto tempo um desafio resolvido vale. A liberação é um cookie,
qlyne_clr, amarrado ao IP (o /64 no IPv6) e ao navegador. - “Clique para confirmar”: “Nunca” (o navegador faz a conta sozinho), “Na dúvida” (um clique em “Sou uma pessoa” só quando a nota não é baixa ou o endereço pediu muitos desafios) ou “Sempre”. Vale também para o captcha de formulário. Clique disparado por script, ou no computador sem o ponteiro ter mexido antes, é recusado.
Navegador controlado por Selenium, Puppeteer ou Playwright, do jeito que vêm, não ganha a liberação. Cliente que copia o user agent de um navegador sem os cabeçalhos que esse navegador sempre manda em HTTPS também é recusado.
O botão “Sob ataque”, no topo da página, desafia toda página vista sem o cookie de liberação. Chamadas de API não são desafiadas, então apps e integrações seguem funcionando.
Nota de robô
Seção intitulada “Nota de robô”Com “Dar nota aos visitantes” ligado, o conector põe um script pequeno, /__qlyne/s.js, nas suas páginas HTML, servido do seu próprio domínio.
Alguns segundos depois de a página abrir, depois de um clique ou tecla, e quando o visitante envia um formulário ou sai, o script manda um resumo para /__qlyne/s. O resumo diz se o navegador informa ser automatizado, quantos idiomas, plugins, núcleos de processador e pontos de toque ele informa, o tamanho da tela e se tem fuso horário. Ele também conta quantas vezes o ponteiro mexeu, o visitante clicou, digitou, rolou ou tocou, e quantos desses eventos um script disparou. Manda só contagens: nunca teclas, texto ou onde o ponteiro estava.
Desse resumo, e de os cabeçalhos do pedido baterem ou não com o navegador do user agent, o conector dá uma nota de 0 a 100. Abaixo de 30 é baixa, de 30 a 59 média, de 60 para cima alta. A nota fica 30 minutos no cookie qlyne_bs, cifrado e amarrado ao IP e ao navegador, então o visitante não consegue ler nem mudar a nota.
O seu app recebe a nota em Qlyne-Bot-Score, com os motivos em Qlyne-Bot-Reasons (como automation,no_interaction). Esta parte funciona no Free.
No Pro, escolha o que a nota média e a alta recebem:
- “Nada, só avisar o meu app”;
- “Atrasar 3 segundos”;
- “Desafio”, ou “Desafio com clique”;
- “Bloquear”, um
403; - “Mostrar a página-isca”: uma página do seu site que o robô recebe no lugar da que pediu, no mesmo endereço. Ele segue raspando algo que não vale nada. Preencha “Página isca” com o caminho dela.
“Rotas que exigem a nota” (Pro) recusam formulário ou chamada de API (tudo que não é GET) de um navegador que não rodou o script, com 403 e {"code": "SENSOR_REQUIRED"}. Use nas rotas que robô chama direto, como a API de checkout ou de cadastro. Quem resolveu o desafio passa.
“Desafiar navegadores que nunca rodaram o script” (Pro; só no proxy do Qlyne e no hospedado): o navegador que abre uma página sem nunca ter rodado o script, nem resolvido um desafio, recebe o desafio invisível. O navegador de verdade resolve e segue; curl e ferramentas headless param ali. Arquivos estáticos, chamadas de API e robôs verificados ficam de fora.
Robôs verificados e impostores
Seção intitulada “Robôs verificados e impostores”Googlebot e Bingbot são reconhecidos pelas faixas de IP que o Google e a Microsoft publicam, que o Qlyne mantém atualizadas para todas as contas. Robô verificado pula o desafio (em qualquer rota, modo sob ataque incluído), a armadilha para scanner e o bloqueio por reputação compartilhada. O seu app recebe Qlyne-Verified-Bot com googlebot ou bingbot.
No proxy do Qlyne e no hospedado, o pedido cujo user agent diz Googlebot ou Bingbot mas vem de fora dessas faixas é barrado como impostor. Não precisa de configuração e funciona no Free.
O ChatGPT agent navega com user agent de Chrome, então nem o nome nem o IP o distinguem. Em vez disso ele assina cada pedido (HTTP Message Signatures, o protocolo Web Bot Auth), e no proxy do Qlyne e no hospedado essa assinatura é conferida com a chave que a OpenAI publica, que o Qlyne busca para todas as contas. Assinatura válida recebe o mesmo tratamento de robô verificado, com Qlyne-Verified-Bot: chatgpt-agent; se você barra assistentes de IA, o agente assinado é barrado junto. O pedido que diz ser o ChatGPT agent sem assinatura, ou com assinatura que não confere com a chave da OpenAI, é barrado como impostor. Assinatura feita com um keyid que o Qlyne não conhece passa sem o rótulo e segue as suas outras configurações. Se o Qlyne não tem uma chave em dia, nada é barrado por assinatura e o pedido segue as suas outras configurações.
Robôs de IA
Seção intitulada “Robôs de IA”Escolha as categorias a barrar:
- “Robôs que treinam modelos de IA”: GPTBot, ClaudeBot, CCBot, Bytespider e outros.
- “Robôs de busca com IA”: OAI-SearchBot, Claude-SearchBot, PerplexityBot. As suas páginas deixam de aparecer como fonte nessas respostas.
- “Assistentes de IA abrindo uma página a pedido de alguém”: ChatGPT-User, Claude-User, Perplexity-User.
O robô barrado recebe um 403. O seu /robots.txt é servido com um grupo Disallow: / para esses robôs acrescentado no fim. A busca do Google e do Bing não é afetada.
No Worker da Cloudflare, o conector precisa rodar no site inteiro (uma rota como example.com/*), robots.txt incluído.
Armadilha para scanner
Seção intitulada “Armadilha para scanner”Scanners pedem caminhos que nenhum visitante pede: /.env, /.git/config, /phpmyadmin, /wp-login.php num site sem WordPress. Em “Caminhos da armadilha”, escolha os grupos:
- “Segredos e arquivos de código”:
/.env,/.git,/.aws, backups e dumps de banco. - “Ferramentas de admin que você não usa”: phpMyAdmin, Adminer, cgi-bin, PHPUnit e exploits de roteador.
- “Caminhos do WordPress”:
/wp-login.php,/wp-admin,/xmlrpc.php. Deixe desligado se o seu site usa WordPress.
Acrescente os seus em “Os seus caminhos de armadilha”, como um endereço de admin antigo ou um link que só robô segue. Quem pede um deles leva um 404 comum, sem sinal de que era armadilha. Depois fica bloqueado em todas as rotas pelo tempo de “Bloquear por”: 15 minutos, 1 hora ou 24 horas. No IPv6, o bloqueio vale para o /64.
O conector que pegou bloqueia na hora; os outros Workers ou proxies do site ficam sabendo em até um minuto. Googlebot, Bingbot e endereços de confiança nunca caem. Bot Management › Visão geral lista os endereços presos pela armadilha e quando cada um sai.
Saídas do Tor (Pro)
Seção intitulada “Saídas do Tor (Pro)”Em WAF & Firewall › Configuração, “Endereços IP”, “Saídas do Tor” usa a lista pública do Tor Project, atualizada a cada hora. “Desafiar toda página” ou “Bloquear”; chamadas de API não são desafiadas.
Reputação compartilhada
Seção intitulada “Reputação compartilhada”Em WAF & Firewall › Configuração, “Reputação compartilhada” lista os endereços que sites de outras contas do Qlyne viram atacando nas últimas 24 horas. Ou seja, pegos pela armadilha para scanner ou pelas regras gerenciadas, com nota de robô alta, usando navegador automatizado ou recusados pelo captcha de formulário. Um endereço só entra na lista quando pelo menos duas contas o relatam, então nenhuma conta sozinha põe alguém nela. No IPv6 a lista guarda o /64.
“O que um endereço da lista recebe”:
- “Nada”;
- “Avisar” (o padrão, também no Free): o seu app recebe
Qlyne-Reputation: 1; - “Desafio” (Pro): as páginas vistas por ele recebem o desafio; chamadas de API passam;
- “Bloquear” (Pro):
403. Googlebot e Bingbot nunca são bloqueados por ela.
Endereços de confiança passam direto. “Relatar ataques neste site” (ligado por padrão) põe o endereço desses ataques na lista compartilhada. Por 24 horas a lista guarda o endereço e o id da sua conta, que é como ela conta quantas contas o relataram. Nunca guarda o caminho, o user agent ou qual site foi. Desligar não impede você de usar a lista. Como esses dados são tratados está nos termos e na política de privacidade.
Impressão digital do TLS (JA4)
Seção intitulada “Impressão digital do TLS (JA4)”Ao abrir a conexão, o navegador lista as versões do TLS, as cifras e as extensões que aceita. Essa lista, resumida numa impressão digital JA4 como t13d1516h2_8daaf6152771_d8a2da3f94cd, depende do programa e não do user agent que ele diz ter. Um script que copia o user agent do Chrome continua conectando como script.
Não há campo para configurar. Quando o conector tem a impressão digital, o seu app recebe Qlyne-JA4, a tela Eventos mostra o valor ao lado do user agent, e as suas regras podem usá-lo. A nota de robô soma tls quando o user agent diz ser um Chrome, Firefox ou Safari recente mas a conexão não usa TLS 1.3 ou não oferece HTTP/2. Proxy de empresa que inspeciona o HTTPS também troca a impressão digital, então isso só leva a nota à faixa média e nunca bloqueia sozinho.
O hospedado tem a impressão digital de todo visitante. O proxy do Qlyne tem quando o HTTPS termina nele: veja Impressão digital do TLS na página do proxy. Na Cloudflare, precisa do Bot Management da própria Cloudflare, um plano Enterprise.
Captcha para qualquer formulário
Seção intitulada “Captcha para qualquer formulário”Para formulários num site sem conector, ou numa página que você não quer desafiar inteira. O navegador resolve uma prova de trabalho curta, sem quebra-cabeça, e o formulário leva um token que o seu servidor confere uma vez. Configuração e código: Captcha para qualquer formulário.
O que o visitante vê
Seção intitulada “O que o visitante vê”As páginas saem em inglês ou português, pelo idioma do navegador do visitante. Pedido que não pede HTML (uma chamada de API) recebe JSON com o mesmo status.
- Desafio: uma página
403com o título “Verificando o navegador” e o texto “Leva alguns segundos. A página abre sozinha.” A página abre por conta própria quando o navegador termina a conta. Chamadas de API recebem{"code": "CHALLENGE_REQUIRED"}. - Desafio com clique: “Confirme que você é uma pessoa”, com o botão “Sou uma pessoa”.
- Sem JavaScript: as duas páginas de desafio dizem “Ative o JavaScript para continuar nesta página.”
- Bloqueio (nota alta com “Bloquear”, impostor, armadilha, reputação compartilhada, Tor): uma página
403com o título “Acesso bloqueado” e o texto “Este site recusou o acesso a partir da sua conexão. Se acha que é um engano, fale com o site.” Sem regra, sem IP, sem falar em robô. Chamadas de API recebem{"code": "ACCESS_BLOCKED"}. - Armadilha para scanner: um
404em texto puro, “Not found”. - Robô de IA: um
403em texto puro. - “Atrasar 3 segundos”: a página normal, 3 segundos depois.
- Isca: a página isca, no endereço que foi pedido.
As páginas de desafio e de bloqueio dizem “Protegido por Qlyne” no rodapé.
Medido na demo
Seção intitulada “Medido na demo”Em 2026-10-18, uma rodada de seis clientes contra demo.qlyne.com (hospedado, com “Desafiar navegadores que nunca rodaram o script” ligado) deu:
| Cliente | Resultado |
|---|---|
| User agent de Googlebot vindo de fora das faixas do Google | Barrado |
| User agent de Bingbot vindo de fora das faixas da Microsoft | Barrado |
| GPTBot | Barrado |
| User agent de Chrome sem os cabeçalhos que o Chrome manda | Desafiado |
| User agent e cabeçalhos de um Chrome recente, sem JavaScript | Desafiado |
| curl pedindo qualquer coisa que não seja página | Passou |
Limites
Seção intitulada “Limites”- A lista de robôs verificados é a mesma para todas as contas: Googlebot e Bingbot, conferidos pela faixa de IP. Não dá para acrescentar outros. Os outros buscadores (DuckDuckBot, Applebot, Yandex) são tratados como qualquer visitante, então o desafio de uma página vale para eles também.
- A nota precisa do script. A primeira página vista ainda não tem nota, então as ações valem a partir do pedido seguinte. Clientes de API e robôs nunca rodam o script, então nunca têm nota.
- O desafio encarece o robô; não impede um robô determinado. Um navegador de verdade que esconde as marcas de automação passa depois de resolver a prova de trabalho.
- O robô de IA é reconhecido pelo user agent que declara. O que finge ser navegador é tratado como navegador e cai nas outras regras.
- Robô verificado pula o desafio, a armadilha e o bloqueio por reputação, não tudo. A sua lista de IPs bloqueados, os limites de pedidos e as suas regras valem para ele como para qualquer um.
- A detecção de impostores e “Desafiar navegadores que nunca rodaram o script” estão no proxy do Qlyne e no hospedado, não no Worker da Cloudflare.
- Comece no modo observar. As contagens mostram o que seria desafiado ou barrado antes de alguém ser recusado.
Perguntas frequentes
Seção intitulada “Perguntas frequentes”Vai barrar o Googlebot?
Seção intitulada “Vai barrar o Googlebot?”Não, quando ele vem do Google. Googlebot e Bingbot das faixas publicadas pulam o desafio, a armadilha e o bloqueio por reputação, e as suas escolhas de robôs de IA não mexem na busca do Google nem do Bing. O que ainda pode pará-los é o que você mesmo configura: um IP bloqueado, um limite de pedidos ou uma das suas regras. O pedido que só diz ser Googlebot, vindo de outra rede, é barrado no proxy do Qlyne e no hospedado.
E se o visitante tiver o JavaScript desligado?
Seção intitulada “E se o visitante tiver o JavaScript desligado?”As páginas sem desafio abrem normalmente, e o visitante fica sem nota de robô. A página com desafio pede para ativar o JavaScript e não abre enquanto isso não acontece. Com “Desafiar navegadores que nunca rodaram o script” ligado, isso vale para toda página vista; deixe desligado se o seu público precisa de páginas sem JavaScript.
Quanto custa de latência?
Seção intitulada “Quanto custa de latência?”O conector decide com as regras que guarda na memória e não chama o Qlyne a cada pedido. Medido em 2026-10-11, do mesmo servidor, a loja da demo respondeu pelo proxy do Qlyne em 3 ms na mediana, e a página do desafio em 2 ms. Isso deixa de fora a rede entre o seu visitante e o seu servidor. A pessoa só espera numa página com desafio, cerca de um segundo num celular na dificuldade 4, e uma vez por validade.
Como vejo o que foi barrado?
Seção intitulada “Como vejo o que foi barrado?”Bot Management › Visão geral mostra as contagens do período que você escolher (24 horas por padrão), a divisão entre notas baixa, média e alta, e os endereços presos pela armadilha. Eventos lista cada decisão com o motivo, os motivos da nota em palavras, o user agent e a impressão TLS, e exporta para CSV. No modo observar, os mesmos lugares mostram o que teria acontecido. Mais em Eventos e relatórios.
Funciona no Free?
Seção intitulada “Funciona no Free?”Em parte. No Free: a nota de robô enviada ao seu app, robôs verificados, a detecção de impostores, robôs de IA, a armadilha para scanner, a reputação compartilhada como aviso ao seu app, a impressão TLS e o captcha de formulário. O Pro acrescenta o que desafia ou barra o visitante por julgamento: o desafio e o modo sob ataque, as ações por faixa de nota, as rotas que exigem a nota, o desafio para navegadores sem o script, o Tor, e desafiar ou bloquear endereços da lista. Toda conta nova começa com 7 dias de Pro, sem cartão. Veja Planos.
Problemas comuns
Seção intitulada “Problemas comuns”Está tudo ligado e nada é barrado
Seção intitulada “Está tudo ligado e nada é barrado”Confira “Modo” em Conector › Configuração. Em “Só observando”, o conector conta o que faria (“Desafiaria”, “Barraria pela nota de robô”) e deixa todo mundo passar. Passe para “Aplicar” quando os números fizerem sentido. Se o site está no Free, o desafio, as ações por nota, o Tor e as ações de reputação ficam salvos mas não valem; a página mostra o aviso “Plano grátis”. No nível Básico a nota fica desligada.
O desafio volta em toda página
Seção intitulada “O desafio volta em toda página”O cookie de liberação é amarrado ao IP e ao navegador, e é Secure. Procure:
- site servido em HTTP puro: o navegador não guarda cookie
Secure, então o desafio nunca libera; - visitante cujo IP muda a cada pedido, como algumas redes móveis, VPNs ou proxies de empresa com várias saídas;
- navegador que bloqueia cookies do seu site;
- teste com Selenium, Puppeteer ou Playwright, que nunca ganha a liberação. Ponha o endereço da máquina de teste na lista de confiança em WAF & Firewall › Regras de IP.
Um robô de busca está sendo barrado
Seção intitulada “Um robô de busca está sendo barrado”Abra Eventos e ache o pedido: o motivo diz qual regra parou.
- “Googlebot, Bingbot ou ChatGPT agent falso barrado”: o pedido não veio das faixas do Google ou da Microsoft, ou disse ser o ChatGPT agent sem assinatura válida. Ferramentas de SEO costumam mandar o user agent do Googlebot, e esse bloqueio é o resultado esperado.
- Um IP bloqueado, um limite de pedidos ou uma das suas regras: robôs verificados não escapam deles. Tire o endereço da lista de bloqueados em WAF & Firewall › Regras de IP. Para um limite ou uma regra, no Pro, ponha no topo das suas regras uma com “Robô de busca verificado” “é sim” e “Deixar passar, pulando as outras regras”.
- Outro buscador (DuckDuckBot, Applebot): ele não está na lista de verificados, então o desafio vale para ele. Desligue “Desafiar navegadores que nunca rodaram o script”, ou deixe passar por uma regra no user agent dele. Qualquer um manda esse user agent, então a regra deixa passar também os impostores desse robô.