Todos os recursos
Verificação

Três camadas de defesa, quatro superfícies, nenhum bot vence

A verificação é o núcleo do Caputchin. As portas trabalham juntas; as superfícies são como você as pluga no seu stack. O caminho padrão é o widget mais uma chamada de verify do seu backend. As outras superfícies existem para quando o padrão não serve.

Como uma verificação flui.

O visitante abre sua página. O widget roda as portas. Um token assinado atravessa para o seu backend. Seu backend nos pede para confirmá-lo.

  1. VisitanteAbre sua página
  2. Widget do CaputchinCarrega na sua página
  3. Anti-trapaça de jogoRoda num iframe isolado
  4. Seu backendRecebe o token embrulhado
  5. /siteverifyO Caputchin confirma o token
O mesmo formato, quer você publique o widget, chame a API direto ou use a verificação hospedada. O token embrulhado é a única coisa que atravessa do navegador do visitante para o seu backend.
Matriz de ameaças
Todos os planos

Cada camada encarece um ataque diferente.

Nenhuma camada sozinha pretende vencer todo ataque. O ponto é a composição: quando uma requisição chega ao jogo, ela já pagou o pedágio de cada porta à sua frente. Mapa honesto abaixo.

  • Scripts de curl e fetch
    Scripts HTTP crus batendo direto no seu endpoint.
    Camadas que o respondem
    • Instrumentação do navegador
  • Navegadores headless
    Puppeteer, Playwright ou Selenium rodando em segundo plano.
    Camadas que o respondem
    • Instrumentação do navegador
  • Fazendas de bots com navegadores reais
    Instâncias reais do Chrome em servidores alugados, às vezes com humanos conduzindo.
    Camadas que o respondem
    • Proof of work
    • Anti-trapaça de jogo
  • Solver como serviço
    Fazendas de resolução pagas que pegam um desafio e devolvem a resposta, muitas vezes com mão de obra humana barata.
    Camadas que o respondem
    • Proof of work
    • Anti-trapaça de jogo
  • Modelos de IA de fronteira
    Modelos de visão e de agente que leem grades de imagens, resolvem quebra-cabeças de OCR e passam CAPTCHAs antigos em milissegundos.
    Camadas que o respondem
    • Anti-trapaça de jogo
Anti-trapaça de jogo
Todos os planos

Mais que um jogo. Um motor de verificação.

Um joguinho variado que os humanos jogam em segundos e curtem. Por baixo, ele roda o mesmo manual anti-trapaça que os jogos multijogador competitivos usam para pegar trapaceiros: nossos servidores preparam cada rodada antes de você jogar (autoridade do servidor) e a re-simulam depois (repetição determinística), então o jogo não pode ser falsificado, só jogado. É a camada que nenhum outro CAPTCHA tem, e a razão pela qual o Caputchin existe.

Antes de jogar

Configuração autoritativa no servidor

  • Um ticket assinado de uso único (janela de 30 minutos) cunha a rodada. Gaste uma vez e ele nunca mais pode ser repetido.
  • O jogo e sua semente aleatória são escolhidos nos nossos servidores, nunca no navegador, então nada do lado do cliente pode escolher um alvo mais fácil.
  • Um jogo diferente do pool a cada vez. Um solver nunca sabe qual vai enfrentar, então não pode pré-treinar.

O mesmo modelo de um servidor de jogo competitivo: o cliente envia só entradas, nunca o veredito.

Depois de jogar

Repetição determinística

  • Suas entradas exatas são repetidas nos nossos servidores sob a mesma semente, dentro de um isolado lacrado sem rede e com orçamento de tempo rígido.
  • O passa ou não passa é recalculado por essa repetição, nunca tirado do navegador.
  • O código de cada jogo é checado por hash antes de rodar, então o artefato não pode ser trocado por baixo de você.

Construída sobre o mesmo determinismo de que o multijogador em lockstep depende: a rodada é re-simulada a partir da semente para confirmar que foi mesmo jogada.

Isolado na sua página

Um iframe isolado sem rede e sem alcance aos seus cookies, ao seu armazenamento ou ao seu DOM.

Variedade de jogos

Sites diferentes recebem jogos diferentes, e o catálogo não para de crescer.

Repetição lacrada

A repetição roda sem rede e com orçamento de CPU rígido. Nada entra nem sai.

Código à prova de adulteração

Cada artefato de jogo é verificado por hash antes de um único quadro rodar.

Sem perfilamento

A gente não vigia seu mouse nem seu timing. Em vez disso, roda a rodada de novo.

Mais duas portas, empilhadas ao lado

O anti-trapaça de jogo nunca trabalha sozinho. Uma porta de proof of work e a instrumentação do navegador rodam junto, cada uma encarecendo um padrão de ataque diferente. Compostas em série, cada camada que o atacante alcança já pagou um pedágio.

Todos os planos

Proof of work

Cada tentativa de verificação força o navegador do visitante a rodar um pequeno quebra-cabeça criptográfico. Um humano espera algumas centenas de milissegundos e nunca percebe. Uma fazenda de bots pagando por processamento em escala sente cada ciclo.

Onde se encaixa

Formulários de cadastro alvejados por criação automatizada de contas. Cada conta falsa custa ao atacante processamento mensurável, e o abuso em massa fica caro demais para valer a pena.

Todos os planos

Instrumentação do navegador

O widget lê sinais de ambiente que o navegador do visitante expõe. Navegadores reais sempre os têm. Ferramentas headless e scripts em geral os falsificam mal, ou nem isso. Um interruptor por site, o bloqueio de navegadores automatizados, rejeita de imediato qualquer coisa que a instrumentação marque como headless ou controlada por driver (Playwright, Selenium, Puppeteer). É opcional, então deixe desligado se você espera automação legítima.

Onde se encaixa

Formulários de comentário e páginas de contato alvejados por scripts de Playwright ou Selenium. Com o bloqueio de navegadores automatizados ligado, o script é filtrado na porta em vez de receber um desafio para resolver.

Superfícies de integração

Quatro formas de pôr a verificação na frente de um visitante. Escolha a que combina com o formato do seu código, do seu stack ou da sua equipe.

Todos os planos

Componente web pronto para usar

Uma tag HTML monta o widget. Ele roda as portas e te entrega um token quando o visitante passa. Funciona em React, Vue, Svelte, Angular ou HTML puro, porque componentes web são nativos do navegador e não precisam de um wrapper de framework.

Onde se encaixa

O caminho padrão. Adicione proteção contra bots ao seu formulário de cadastro em minutos sem pegar uma nova dependência.

Todos os planos

API de runtime

A API de verificação tem duas partes. A chamada de verify que seu backend usa em toda integração para confirmar que um token é real. E os endpoints de desafio de mais baixo nível para conduzir a verificação você mesmo, para os casos raros em que o widget não serve. Distinta da API REST de gestão que sua equipe usa para mudanças de conta e configuração.

Onde se encaixa

Chamada de verify: todo backend, sempre. API direta: chats, paywalls, formulários de várias etapas entrelaçados na sua própria UI, onde quer que o elemento do widget não consiga renderizar.

Alpha tier

Verificação hospedada

Aponte a action do seu formulário para nós. Verificamos o visitante e então encaminhamos os envios para a sua caixa de entrada ou o seu endpoint. Zero código de backend do seu lado.

Onde se encaixa

Sites estáticos e construtores no-code que não têm um backend para verificar tokens por conta própria. Lance um formulário de contato com proteção contra bots no tempo que leva para trocar um atributo action.

Todos os planos

Embed em WebView móvel

Uma página de embed feita sob medida para apps nativos de iOS e Android que renderizam o desafio dentro do WebView deles. O mesmo widget, pegada menor, nenhum SDK nativo para instalar.

Onde se encaixa

Apps móveis que precisam de verificação sem enviar SDKs específicos de framework nem reconstruir um fluxo de CAPTCHA nativo em cada plataforma.

Lance a verificação em uma única chave de site. Grátis.

Cadastre-se, emita uma chave de site, solte o widget em um formulário. Faça upgrade depois quando precisar de um recurso de um nível mais alto.

Começar grátis