Imagem de capa do projeto: NEXUS IPQualityScore EM ANDAMENTO

Resumo técnico

Plugin NEXUS que consulta a reputação de e-mails, IPs e URLs na IPQualityScore com score de fraude unificado 0–100, flags (disposable, proxy, VPN, Tor, phishing…) e cache local de 24h — com bloqueio de login e cadastro por limiar de risco e e-mail descartável, enriquecimento automático no Intelligence Hub e auditoria completa de verificações e consumo da API.

Escopo executado

  • plugin.json: v1.0.0, slug ipqualityscore, categoria "Intelligence" (aba OSINT & Enrichment, ícone shield-check, is_core: false).
  • Config (DB::getConfig('plugin.ipqualityscore')): api_key, block_disposable_emails (false), min_fraud_score (75, clamp 0–100), verify_on_register (true); a chave é normalizada no save (remove espaços/controles do clipboard).
  • Bloqueio operacional — hooks before_login e before_register (prioridade 20): resolvem o e-mail quando o login é por username, verificam e-mail + IP (ipqs_check_user) e negam autenticação com mensagem em PT se e-mail descartável (quando ativado) ou score ≥ limiar.
  • Score unificado de usuário — round(email_score * 0.6 + ip_score * 0.4), ou apenas o e-mail quando não há IP; flags de e-mail e IP separadas no resultado.
  • Lookups (email|ip|url) — validação com FILTER_VALIDATE_* (URL sem esquema ganha https://); cache 24h em ipqs_cache (ON DUPLICATE KEY UPDATE); cURL (20s/8s, SSL verify, UA NEXUS-IPQS/1.0) em https://ipqualityscore.com/api/json/{type}/{key}/{value} com params e required_any por endpoint.
  • URL maliciosa — unsafe, phishing ou malware força score ≥ 85, independentemente do risk_score retornado.
  • Auditoria dupla — ipqs_verifications (score, risk_level, flags JSON, blocked, origem, usuário, IP, resultado completo) e ipqs_api_requests (success, cached, billable, http_code, error_message, request_id).
  • risk_level — critical ≥ 90, high ≥ 75, medium ≥ 50, low; bloqueio ocorre a partir do limiar configurado.
  • ipqs_api_online — valida a Private Key em /api/json/account/{key} sem gastar crédito; conta sem créditos ainda conta como online (insufficient credits).
  • Intelligence Hub — enricher ipqs_intel_enrich para email/ip/url (prioridade 49): sinais Fraud score X/100 · risco, severity = score, status ok/error/needs_key/skipped e orçamento de lookups (max_live_lookups); filtros legados task_read/comment_read desativados.
  • Migrations — 4 arquivos: tabelas base, auditoria de requests, backfill de requisições falhas e marcação de chamadas billable.
  • API: 7 actions (ipqs_check com type email/ip/url/user, ipqs_stats, ipqs_history, ipqs_request_history, ipqs_get_config com key mascarada ••••+últimos 4, ipqs_save_config com validação e retorno api_online, ipqs_clear_cache).
  • UI Alpine.js (tab.php, 587 linhas) — tema azul (blue-600), aba OSINT & Enrichment; header com badge API Online/Offline (pulso verde/vermelho/âmbar + atalho Configurar); 4 stats cards com barras de progresso; toolbar com 3 sub-abas (Verificar, Histórico, Configurações); aba Verificar com tipos e-mail/IP/URL/usuário (+ IP opcional), resultado com score /100 colorido por risco (rose ≥ 75, âmbar ≥ 50, verde < 50), badge Cache 24h e flags em pills; Histórico com tabela de verificações e auditoria de consumo da API (status cached/success/error); Configurações com API key mascarada, toggles e limiar de score.
  • Fastr: /ipqs-email, /ipqs-ip, /ipqs-url.
  • Cron vazio (jobs: [], on-demand) e modal próprio (modals.php).
  • Sem i18n (textos em português) e sem lang.json.

Stack e ferramentas

  • PHP 8 (sem framework)
  • MySQL 8 (ipqs_cache, ipqs_verifications, ipqs_api_requests)
  • Alpine.js + Tailwind CSS (premium light, azul)
  • cURL (lookups 20s, health-check 8s, SSL verify)
  • IPQualityScore API (/api/json/email|ip|url/{key}/{value}, /api/json/account/{key})
  • Plugin NEXUS (PluginManager: tabs, filters, API actions, Fastr, modals, migrations)

Tags operacionais

  • IPQualityScore
  • Anti-Fraude
  • Fraud Score
  • Email Verification
  • IP Reputation
  • URL Scanner
  • OSINT
  • Plugin NEXUS

Resultado operacional

  • Proteção proativa do cadastro: login e registro negam acesso com base em score de fraude e e-mails descartáveis — com mensagem clara para o usuário.
  • Cobertura de 3 alvos + usuário: e-mail, IP e URL verificados individualmente ou em score unificado por usuário.
  • Economia de créditos: cache local de 24h e health-check sem gastar lookup; flags de URL maliciosa forçam score alto.
  • Rastreabilidade total: verificação e consumo da API auditados (billable, falhas, request_id) — KPIs e histórico no painel.
  • Inteligência integrada: sinais do IPQualityScore no Intelligence Hub de tarefas e comentários com severidade = score.
  • Privacidade de chave: Private Key nunca exposta no frontend (apenas máscara ••••).
  • Comandos /ipqs-email, /ipqs-ip e /ipqs-url no chat.

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

Verificador de reputação e detecção de fraudes em endereços IP via IPQualityScore. Identifica conexões originadas de proxies, VPNs maliciosas, redes Tor e botnets, calculando índices de fraude para mitigar abusos e ataques automatizados.

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.