EM ANDAMENTO
Resumo técnico
O NEXUS hCaptcha Protection protege o login do NEXUS contra bots usando o hCaptcha (Enterprise/Standard, com foco em privacidade): o widget é renderizado no formulário com o botão de submit travado até a verificação, e o token é validado server-side via endpoint oficial siteverify com o IP remoto. A secret key fica apenas no servidor, com configuração por modal no painel, e o filtro aceita tokens de hCaptcha ou reCAPTCHA por compatibilidade.
Escopo executado
- Registro do plugin (
registerModal('hcaptcha-modals', modals.php)+style: design.cssem plugin.json) e funções backend embackend.php(110 linhas):hcaptcha_get_config(),hcaptcha_save_config(),hcaptcha_verify_token(),hcaptcha_is_enabled()ehcaptcha_get_site_key(). - Filtro
before_login(prioridade 5): se habilitado, exigeh-captcha-responseno POST (aceita tambémg-recaptcha-responsepor compatibilidade); valida viahcaptcha_verify_token($token, $_SERVER['REMOTE_ADDR'])e bloqueia o login com mensagem clara se falhar. - Filtro
login_form_after_fields: injeta o container#hcaptcha-containercom o widget.h-captcha(data-sitekey, callbacksonHcaptchaSuccess/onHcaptchaExpired) e carregaapi.jsdo hCaptcha +assets/hcaptcha.js. - Frontend (
assets/hcaptcha.js, 27 linhas): trava o botão de submit (disabled + opacidade + cursor) até o widget ser resolvido;onHcaptchaSuccesslibera o botão;onHcaptchaExpiredtrava novamente. - Verificação server-side:
POST https://api.hcaptcha.com/siteverifycomsecret,responseeremoteip(quando disponível), timeout 10s; resposta JSON comsuccesseerror-codestraduzidos na mensagem. - Proteção de configuração: secret key nunca é devolvida completa pela API —
hcaptcha_get_configretornasecret_key_masked(6 primeiros + 4 últimos chars); campos de chave no modal são tipopassword. - API com 4 actions:
hcaptcha_save_config(site_key + secret_key + enabled, exige ambas para ativar),hcaptcha_get_config(com key mascarada),hcaptcha_verify(validação manual de token) ehcaptcha_sitekey(estado público site_key/enabled). - Fast Responses: manifesto
fastr.jsoncom/hcaptcha(sem arg obrigatório), actionhcaptcha_sitekey— mostra o estado público do plugin. - Sob demanda:
cronjob.jsoncomjobs: [](nenhuma rotina periódica necessária); sem CLI. - Interface: modal de configuração Alpine.js (
hcaptchaConfigModal(), 175 linhas emmodals.php) com badge Configurado/Não configurado, link para o painel hCaptcha (dashboard.hcaptcha.com) e campos Site Key/Secret Key. - Ambiente de laboratório:
hcaptcha_is_enabled()retornafalseem host de laboratório (nx_is_lab_host()) — evita travar o login em ambientes de teste.
Stack e ferramentas
- PHP 8 backend (sem framework)
- hCaptcha API — widget (
js.hcaptcha.com/1/api.js) + siteverify server-side - Alpine.js + Tailwind CSS (modal) +
assets/hcaptcha.js - Plugin API interno: PluginManager filters/modals/actions +
fastr.json
Tags operacionais
- hCaptcha
- Anti-bot
- Login
- Segurança
- Siteverify
- Privacidade
- Proteção Web
- Plugin NEXUS
Resultado operacional
- Bloqueio de bots no login: força a resolução do desafio antes de liberar o submit e valida o token no servidor.
- Validação server-side: siteverify com secret key e IP remoto — o frontend nunca decide sozinho.
- Chaves protegidas: secret key nunca sai do servidor; a API devolve apenas versão mascarada.
- Privacidade: hCaptcha é alternativa focada em privacidade, com modal destacando o painel oficial.
- Controle de ativação: exige Site Key + Secret Key para habilitar; desativado automaticamente em host de laboratório.
- Sem rotinas: plugin puramente sob demanda — sem cron nem CLI.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Protege o login do NEXUS contra bots usando o hCaptcha (foco em privacidade): widget renderizado no formulário com o botão de submit travado até a verificação, validação server-side via endpoint oficial siteverify com IP remoto e secret key guardada apenas no servidor; configuração por modal no painel e aceita tokens de hCaptcha ou reCAPTCHA por compatibilidade.
Arquitetura e organização
- PHP 8
- hCaptcha API
- Alpine.js
- Tailwind CSS
- Plugin NEXUS
Execução e operação
O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.
Screenshots
Falar sobre este projeto
Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.