Integração com JavaScript

Integre o SilentShield em qualquer site usando JavaScript puro, ou utilize nossos guias específicos para React, Vue e Angular.

1. Adicionar a Tag de Script

Adicione esta tag de script ao seu HTML, de preferência antes da tag de fechamento </body>:

HTMLhtml
<script src="https://api.silentshield.io/client.js?k=YOUR_API_KEY" crossorigin="anonymous" defer></script>

2. Inicializar o Widget

Não é necessária inicialização manual — o client.js inicializa-se sozinho e carrega a configuração do widget (tema, idioma, distintivo) a partir das definições do painel:

JavaScriptjavascript
// No init call needed — client.js bootstraps itself as soon as it loads
// and pulls your widget configuration (theme, language, badge) from the
// dashboard: App → API keys → [your key] → Widget.

Opções de Configuração

apiKey
API Key (obrigatório)
lang
Código do idioma ou 'auto' para detecção do navegador (padrão: 'auto'). Suporta 25 idiomas.
thresholdSuspicious
Pontuação abaixo deste valor aciona um desafio (padrão: 0.6)
thresholdBlock
Pontuação abaixo deste valor bloqueia a requisição (padrão: 0.3)
telemetry
Ativar rastreamento de comportamento (padrão: true)
captchaUI
Mostrar interface do CAPTCHA quando necessário (padrão: true)
fallbackCaptcha
Ativar CAPTCHA matemático como alternativa (padrão: true)
showBrandingBadge
Mostrar selo 'Protegido por SilentShield' (padrão: true)
zeroPii
Disable browser fingerprinting for maximum privacy (default: false). See Features → Zero-PII Mode.
debugOverlay
Mostrar sobreposição de depuração (padrão: false)
onVerdict
Função de callback chamada quando um veredito é recebido

Aplicações de Página Única (SPA)

Para SPAs que usam roteamento no lado do cliente (React Router, Vue Router, etc.), o SilentShield observa automaticamente as mudanças no DOM e detecta novos formulários. Não é necessária reinicialização após a navegação.

Lendo o Nonce

Após o envio do formulário, o nonce está disponível como um campo oculto:

HTMLhtml
const nonce = document.querySelector('input[name="behavior_nonce"]')?.value;