=== Dolutech Blacklist Protect ===
Contributors: Dolutech
Tags: security, blacklist, ip-block, geolocation, brute-force
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 8.2
Stable tag: 0.7.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Proteção avançada WordPress: blacklists automáticas, bloqueio por país (MaxMind), anti força bruta, reCAPTCHA e proteção XML-RPC.

== Description ==

O **Dolutech Blacklist Protect** é um sistema avançado de proteção que oferece múltiplas camadas de segurança para sites WordPress, com tecnologias modernas e interface intuitiva.

### Bloqueio por Geolocalização (NOVO!)
- **Integração MaxMind GeoIP2**: Bloqueie países inteiros automaticamente
- **Validação Automática**: Teste de credenciais ao salvar configurações
- **Cache Inteligente**: Reduz chamadas à API (24h de cache por IP)
- **Interface Intuitiva**: Lista de países comumente bloqueados para referência
- **Códigos ISO**: Use códigos de 2 letras (CN, RU, BR, etc.)

### Sistema de Blacklists Avançado
- **Blacklist Dolutech**: Atualizada automaticamente 2x ao dia
- **Blacklists de Terceiros**: Adicione URLs externas de listas .txt
- **Bloqueio Manual**: IPs específicos com gerenciamento completo
- **Whitelist Inteligente**: IPs fixos e domínios DDNS sempre permitidos

### Proteção Contra Força Bruta
- Bloqueio automático após X tentativas falhadas (configurável)
- **Bloqueio Temporário**: Configure duração em minutos, não horas
- **Bloqueio Permanente**: Para máxima segurança
- **Proteção XML-RPC**: Bloqueio completo ou parcial configurável

### Bloqueio por Usuários Específicos
- Configure usuários "armadilha" (admin, root, administrator)
- Bloqueio imediato do IP ao tentar login com usuários protegidos
- Validação automática: só bloqueia se o usuário realmente existir

### Sistema de Desbloqueio Inteligente
- Solicitação via e-mail com token seguro (válido 24h)
- **Chave Secreta**: Camada extra de segurança opcional
- **Google reCAPTCHA v2**: Proteção contra bots nos formulários
- Interface responsiva com toggle para visualizar chaves

### Monitoramento Completo
- Dashboard com estatísticas detalhadas por fonte
- Lista de IPs com bloqueio temporário ativo (tempo restante)
- Tokens de desbloqueio pendentes
- Blacklists de terceiros com status e contadores

### Recursos Avançados
- **Interface Dinâmica**: JavaScript para mostrar/ocultar opções
- **Validações Robustas**: Nonces, sanitização e escaping
- **Logs Automáticos**: Registro de atividades e erros
- **Cron Jobs**: Limpeza automática de dados antigos

Ideal para **desenvolvedores**, **administradores** e **agências** que buscam segurança máxima sem comprometer usabilidade.

== Installation ==

1. **Upload**: Envie a pasta `dolutech-blacklist-protect` para `/wp-content/plugins/`
2. **Ativação**: Ative o plugin em **Plugins** → **Plugins Instalados**
3. **Configuração**: Acesse **Configurações** → **Dolutech Blacklist Protect**
4. **Requisitos**: PHP 8.2+ e WordPress 6.7+ (verificados automaticamente)
5. **Recomendações**: 
   - Configure sua whitelist ANTES de ativar bloqueios
   - Teste o sistema de e-mail para desbloqueios
   - Configure reCAPTCHA para máxima segurança

== Frequently Asked Questions ==

= Como funciona o bloqueio por geolocalização? =
Ao ativar o MaxMind GeoIP2, você insere suas credenciais da API e seleciona os países a bloquear usando códigos ISO (2 letras). Quando alguém de um país bloqueado tenta acessar, o plugin consulta a API MaxMind, identifica o país do IP e bloqueia automaticamente. Os resultados ficam em cache por 24 horas para otimizar performance.

= Onde consigo credenciais da MaxMind? =
Acesse https://www.maxmind.com/en/geolite2/signup e crie uma conta gratuita. Em "Manage License Keys", crie uma nova chave. Você receberá um Account ID e uma License Key. O plugin valida automaticamente ao salvar.

= Como as blacklists são atualizadas? =
As listas são atualizadas automaticamente 2x ao dia via cron do WordPress. Inclui a blacklist Dolutech oficial + todas as blacklists de terceiros configuradas.

= E se meu IP estiver bloqueado? =
Configure sua **whitelist** primeiro! Adicione IP fixo ou domínio DDNS em **Configurações** → **Whitelist**. IPs bloqueados manualmente podem solicitar desbloqueio.

= Como funciona o sistema de desbloqueio? =
1. IP bloqueado vê opção "Solicitar Desbloqueio"
2. Sistema envia token seguro por e-mail aos admins
3. Admin clica no link para desbloquear
4. Se configurado: reCAPTCHA + chave secreta obrigatórios

= Posso usar reCAPTCHA nos formulários? =
Sim! Configure suas chaves do Google reCAPTCHA v2 em **Configurações** → **reCAPTCHA**. Aparece automaticamente nos formulários de desbloqueio.

= Como proteger usuários específicos? =
Use **Bloqueio por Usuários Específicos**: adicione usernames como "admin", "root". Qualquer tentativa de login bloqueia o IP imediatamente.

= XML-RPC fica completamente desabilitado? =
Você escolhe: **Bloqueio Completo** (desabilita tudo) ou **Proteção Parcial** (remove métodos perigosos, monitora tentativas).

= Blacklists de terceiros são confiáveis? =
Você adiciona apenas URLs que confia. O plugin valida IPs antes de bloquear. Recomendamos fontes como SpamHaus, AbuseIPDB, etc.

= O plugin afeta performance? =
Mínima. Bloqueios são verificados apenas no início da requisição. Usa caching e limpeza automática de dados antigos.

= Posso contribuir? =
Sim! GitHub: [https://github.com/dolutech](https://github.com/dolutech) | Sugestões: suporte@dolutech.com

== Screenshots ==

1. Dashboard principal com estatísticas detalhadas de blacklists por fonte
2. Configuração MaxMind GeoIP2 com validação automática de credenciais
3. Interface de bloqueio por países com códigos ISO e países comuns
4. Configurações de proteção de login com bloqueio temporário
5. Interface de blacklists de terceiros com status e contadores
6. Sistema de desbloqueio com reCAPTCHA e chave secreta
7. Configuração de bloqueio por usuários específicos
8. Proteção XML-RPC com opções completas e parciais

== Changelog ==

= 0.7.0 =
* **Novo**: Integração com MaxMind GeoIP2 para bloqueio por geolocalização
* **Novo**: Validação automática de credenciais MaxMind ao salvar
* **Novo**: Campo para configurar Account ID e License Key
* **Novo**: Campo para bloquear países por código ISO (2 letras)
* **Novo**: Cache de geolocalização por 24 horas para otimizar performance
* **Novo**: Lista de países comumente bloqueados como referência
* **Novo**: Página de bloqueio personalizada para bloqueios geográficos
* **Novo**: Limpeza automática de cache de geolocalização expirado
* **Melhoria**: Toggle seguro para visualizar License Key da MaxMind (textContent)
* **Melhoria**: Interface condicional que aparece após validar credenciais
* **Docs**: Instruções completas para obter credenciais MaxMind
* **Segurança**: Validação de códigos de país com regex
* **Segurança**: Sanitização e escaping em todos os campos MaxMind

= 0.6.0 =
* **Novo**: Botão toggle para visualizar/ocultar chave secreta
* **Novo**: Bloqueio de IPs por usuários específicos (admin, root, etc)
* **Novo**: Validação automática de existência de usuários na lista
* **Melhoria**: Interface JavaScript dinâmica para mostrar/ocultar campos
* **Melhoria**: Hook wp_authenticate para interceptar logins maliciosos
* **Docs**: README.md completo com todas as funcionalidades

= 0.5.0 =
* **Novo**: Google reCAPTCHA v2 integrado aos formulários de desbloqueio
* **Novo**: Configuração completa de reCAPTCHA (Site Key + Secret Key)
* **Novo**: Validação server-side robusta do reCAPTCHA
* **Melhoria**: Formulários responsivos com design aprimorado
* **Melhoria**: Tratamento de erro elegante para reCAPTCHA
* **Segurança**: Timeout e validação de IP nas requisições reCAPTCHA

= 0.4.0 =
* **Novo**: Sistema de blacklists de terceiros (URLs externas)
* **Novo**: Interface completa para gerenciar listas externas
* **Novo**: Estatísticas detalhadas por fonte (Dolutech + terceiros)
* **Novo**: Status visual das blacklists (Ativa, Erro, Pendente)
* **Melhoria**: Atualização automática de múltiplas listas em paralelo
* **Melhoria**: Dashboard reorganizado com contadores por categoria

= 0.3.0 =
* **Novo**: Sistema de chave secreta para desbloqueio
* **Novo**: Bloqueio temporário em MINUTOS (não mais horas)
* **Novo**: Proteção XML-RPC configurável (completa ou parcial)
* **Novo**: Interface para mostrar tempo restante de bloqueios
* **Melhoria**: Páginas de bloqueio temporário personalizadas
* **Melhoria**: JavaScript para campos condicionais

= 0.2.0 =
* **Novo**: Sistema completo de solicitação de desbloqueio
* **Novo**: Tokens seguros por e-mail (válidos 24h)
* **Novo**: Configuração de tentativas máximas de login
* **Novo**: E-mails automáticos para administradores
* **Melhoria**: Interface de tokens pendentes no admin
* **Melhoria**: Limpeza automática de tokens expirados

= 0.1.0 =
* **Novo**: Proteção avançada contra força bruta
* **Novo**: Denúncia automática de IPs maliciosos
* **Novo**: Contadores de tentativas com transients
* **Melhoria**: Sistema de bloqueio mais eficiente
* **Segurança**: Validação aprimorada de IPs

= 0.0.1 =
* **Lançamento**: Versão inicial estável
* Blacklist automática da Dolutech (atualizada 2x/dia)
* Bloqueio e desbloqueio manual de IPs
* Sistema de denúncia manual para abuse@dolutech.com
* Whitelist com suporte a IPs fixos e domínios DDNS
* Interface administrativa completa
* Compatibilidade WordPress 6.7+ e PHP 8.2+


== External Services ==

Este plugin conecta-se a serviços externos para funcionalidade completa:

**Blacklist Dolutech (Obrigatório)**
- URL: https://raw.githubusercontent.com/dolutech/blacklist-dolutech/refs/heads/main/Black-list-semanal-dolutech.txt
- Descrição: Lista oficial de IPs maliciosos, atualizada automaticamente
- Termos: https://dolutech.com/termos-de-uso/
- Privacidade: https://dolutech.com/politica-de-privacidade/

**Sistema de E-mails (Opcional)**
- abuse@dolutech.com: Para denúncias automáticas de IPs
- Admins do site: Para notificações de desbloqueio
- Usa wp_mail() nativo do WordPress

**Google reCAPTCHA v2 (Opcional)**
- API: https://www.google.com/recaptcha/api/siteverify
- Descrição: Validação de formulários contra bots
- Configuração: Requer Site Key + Secret Key
- Termos: https://developers.google.com/recaptcha/docs/terms

**MaxMind GeoIP2 (Opcional)**
- API: https://geolite.info/geoip/v2.1/country/
- Descrição: Geolocalização de IPs para bloqueio por país
- Configuração: Requer Account ID + License Key
- Cadastro: https://www.maxmind.com/en/geolite2/signup
- Termos: https://www.maxmind.com/en/geolite2/eula
- Privacidade: Dados de IP consultados são cacheados localmente por 24h

**Blacklists de Terceiros (Opcional)**
- URLs definidas pelo usuário
- Validação automática de formato .txt
- Exemplos: SpamHaus, AbuseIPDB, etc.

== Upgrade Notice ==

= 0.7.0 =
Bloqueio por geolocalização! Integração completa com MaxMind GeoIP2. Bloqueie países inteiros usando códigos ISO de 2 letras. Cache inteligente e validação automática.

= 0.6.0 =
Novos recursos: botão para visualizar chave secreta + bloqueio por usuários específicos. Interface aprimorada com JavaScript dinâmico.

= 0.5.0 =
Google reCAPTCHA v2 integrado! Adicione proteção contra bots nos formulários de desbloqueio. Configure suas chaves e ative.

= 0.4.0 =
Blacklists de terceiros! Adicione URLs externas de listas .txt para máxima proteção. Dashboard com estatísticas detalhadas.

= 0.3.0 =
Bloqueio em MINUTOS + chave secreta + proteção XML-RPC configurável. Sistema mais flexível e seguro.

= 0.2.0 =
Sistema de desbloqueio com tokens seguros por e-mail. IPs bloqueados podem solicitar revisão aos administradores.

= 0.1.0 =
Proteção contra força bruta com denúncia automática. Bloqueio inteligente após X tentativas configuráveis.

= 0.0.1 =
Primeira versão estável. Blacklist automática Dolutech + bloqueio manual + whitelist + denúncias.


== License ==

Este plugin está licenciado sob a GNU General Public License v2.0 ou posterior. Para mais informações, visite https://www.gnu.org/licenses/gpl-2.0.html.
