Verificação no Servidor
Sempre verifique o nonce do SilentShield no seu servidor. Verificações apenas no lado do cliente podem ser contornadas por bots.
Por Que no Servidor?
O Widget é executado no navegador e injeta um nonce nos formulários. Um bot poderia ignorar o Widget e enviar o formulário diretamente. A verificação no servidor garante que o nonce foi legitimamente emitido e verificado pelo SilentShield.
Endpoint da API
- Method
POST- URL
https://api.silentshield.io/api/v1/captcha/verify-nonce- Headers
- X-Api-Key: YOUR_API_KEY Content-Type: application/json
- Body
- { "nonce": "the-nonce-from-the-form" }
Formato de Resposta
{
"ok": true,
"verdict": "human",
"confidence": 0.92,
"requested_nonce": "..."
}human- human — O usuário é muito provavelmente humano. Processe o formulário.
suspicious- suspicious — o servidor rejeitou (HTTP 403, `ok: false`). O veredicto indica o motivo, não a decisão: essa já foi tomada pelo limiar da sua conta.
bot- bot — Alta confiança de que é um bot. Rejeite o formulário.
Lógica Recomendada
O servidor já aplicou o limiar da sua conta: uma rejeição chega como HTTP 403 com `ok: false`. Verifique portanto a passagem, e não `bot` — caso contrário deixa passar todas as rejeições emitidas como `suspicious` e todas as respostas sem veredicto (chave inválida, quota esgotada).
if not ok or verdict != "human":
rejeitar o formulário (403)
else:
processar o formulário normalmenteTratamento de Erros
Se a API do SilentShield estiver inacessível (timeout, erro 5xx), decida sua estratégia:
- Fail Open
- Fail open — Aceitar o formulário (melhor experiência do usuário, menos seguro)
- Fail Closed
- Fail closed — Rejeitar o formulário (mais seguro, pior experiência do usuário)
Para a maioria das aplicações, recomendamos fail open com registro de logs. Formulários críticos (login, pagamento) devem usar fail closed.