Imagem de capa do projeto: NEXUS Google reCAPTCHA EM ANDAMENTO

Resumo técnico

O NEXUS Google reCAPTCHA protege o login do NEXUS contra bots e ataques automatizados usando o Google reCAPTCHA (v2/v3): 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.

Escopo executado

  • Registro do plugin (registerModal('recaptcha-modals', modals.php) + style: design.css em plugin.json) e funções backend em backend.php (110 linhas): recaptcha_get_config(), recaptcha_save_config(), recaptcha_verify_token(), recaptcha_is_enabled() e recaptcha_get_site_key().
  • Filtro before_login (prioridade 5): se habilitado, exige g-recaptcha-response no POST; valida via recaptcha_verify_token($token, $_SERVER['REMOTE_ADDR']) e bloqueia o login com mensagem clara se falhar.
  • Filtro login_form_after_fields: injeta o container com o widget .g-recaptcha (data-sitekey, callbacks onRecaptchaSuccess/onRecaptchaExpired), input oculto g-recaptcha-response e carrega api.js + assets/recaptcha.js.
  • Frontend (assets/recaptcha.js): trava o botão de submit (disabled + opacidade) até o widget ser resolvido; onRecaptchaSuccess preenche o token e libera o botão; onRecaptchaExpired trava novamente.
  • Verificação server-side: POST https://www.google.com/recaptcha/api/siteverify com secret, response e remoteip (quando disponível), timeout 10s; resposta JSON com success e error-codes traduzidos na mensagem.
  • Proteção de configuração: secret key nunca é devolvida completa pela API — recaptcha_get_config retorna secret_key_masked (6 primeiros + 4 últimos chars); campos de chave no modal são tipo password.
  • API com 4 actions: recaptcha_save_config (site_key + secret_key + enabled, exige ambas para ativar), recaptcha_get_config (com key mascarada), recaptcha_verify (validação manual de token) e recaptcha_sitekey (estado público site_key/enabled).
  • Fast Responses: manifesto fastr.json com /recaptcha (sem arg obrigatório), action recaptcha_sitekey — mostra o estado público do plugin.
  • Sob demanda: cronjob.json com jobs: [] (nenhuma rotina periódica necessária); sem CLI.
  • Interface: modal de configuração Alpine.js (recaptchaConfigModal(), 175 linhas em modals.php) com badge Configurado/Não configurado, link para o Google reCAPTCHA Admin Console e campos Site Key/Secret Key.
  • Ambiente de laboratório: recaptcha_is_enabled() retorna false em host de laboratório (nx_is_lab_host()) — evita travar o login em ambientes de teste.

Stack e ferramentas

  • PHP 8 backend (sem framework)
  • Google reCAPTCHA API v2/v3 — widget (api.js) + siteverify server-side
  • Alpine.js + Tailwind CSS (modal) + assets/recaptcha.js
  • Plugin API interno: PluginManager filters/modals/actions + fastr.json

Tags operacionais

  • Google
  • reCAPTCHA
  • Anti-bot
  • Login
  • Segurança
  • Siteverify
  • 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.
  • 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.
  • Configuração guiada: modal com link direto para o Google reCAPTCHA Admin Console.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Protege o login do NEXUS contra bots e ataques automatizados usando o Google reCAPTCHA (v2/v3): 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.

Arquitetura e organização

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.