bet-blocker / bet-blocker-api

BetBlockerApi é uma API que fornece uma lista detalhada de hosts de apostas
https://bet-blocker.com
7 stars 2 forks source link

[MELHORIA] Ajuste de lista de DNS #6

Open RobsonTrasel opened 4 days ago

RobsonTrasel commented 4 days ago

Hoje um problema que temos com essa lista predefinida de domínios, pois muitos nem respondem ou sequer tem aplicações rodando. Como foco é realmente bloquear o usuário de entrar temos que fazer isso com exatidão.

@brunohash e @jhowbhz oque podemos fazer nesse sentido? Eu sugiro antes de salvar a gente verificar se o domínio existe.

brunohash commented 4 days ago

Estava conversando com o @jhowbhz hoje de manhã sobre isso. Nós vamos precisar bater individualmente em cada host, obviamente com um timeout configurado para pegarmos não só quem está funcionando, como também o protocolo HTTP ou HTTPS. O ponto é, se o host retornar 404 ou parecido vamos remover da lista? se o host estiver fora do ar por algum período e nesse momento fizermos o check, vamos remover um domínio que pode voltar ao ar minutos depois.. quem vai adiciona-lo novamente a blocklist?

RobsonTrasel commented 4 days ago

Aqui está uma proposta para resolver o problema de forma automatizada e escalável, com o uso de IA e um serviço independente para gerenciar a lista de domínios.


Solução Proposta

  1. Automação Total com um Serviço Independente

    • Criar um serviço separado que roda continuamente para verificar os domínios.
    • Ele será responsável por:
      • Identificar se o domínio está ativo (responde via HTTP/HTTPS).
      • Classificar automaticamente se o domínio é relacionado a apostas.
      • Atualizar o banco de dados com o status (ATIVO, INATIVO, ou NÃO RELACIONADO).
  2. Uso de IA para Classificação

    • Implementar uma IA para analisar o conteúdo retornado pelo domínio (HTML, palavras-chave, imagens, etc.).
    • A IA classificará automaticamente o domínio como:
      • Relacionado a Apostas: Caso identifique padrões de sites de apostas.
      • Não Relacionado: Caso contrário.
    • Isso elimina a necessidade de intervenção manual para decidir se um domínio pertence à categoria de bloqueio.
  3. Evitar Remoções Desnecessárias

    • Domínios temporariamente inativos (que não respondem) não serão removidos imediatamente.
    • Eles serão marcados como INATIVO e revisitados periodicamente para uma nova verificação.
    • Apenas após múltiplas falhas consecutivas (ex.: 3 tentativas em 7 dias), o domínio será considerado para remoção.

Vantagens da Abordagem


Como Funciona o Serviço

1. Consulta DNS

2. Verificação de Atividade

3. Classificação com IA

4. Atualização no Banco de Dados


Estrutura do Banco de Dados

Exemplo de tabela ou coleção:

Campo Tipo Descrição
id int ID único do domínio.
domain string Nome do domínio (e.g., example.com).
status string ATIVO, INATIVO, ou NÃO RELACIONADO.
lastChecked datetime Última data/hora de verificação.
isBettingSite boolean true se o domínio for de aposta.
protocol string HTTP ou HTTPS.
responseTimeMs int Tempo de resposta em milissegundos.

Fluxo Resumido

  1. O serviço processa a lista de domínios gradualmente.
  2. Para cada domínio:
    • Verifica a existência (DNS).
    • Tenta acessar via HTTP/HTTPS.
    • Classifica o conteúdo retornado com IA.
    • Atualiza o status no banco de dados.
  3. Reexecuta verificações periódicas (ex.: a cada 24 horas).

Pontos de Discussão

  1. Critérios para Remoção:

    • Quantas tentativas falhas devem ocorrer antes de remover um domínio?
    • Exemplo: 3 verificações consecutivas em um intervalo de 7 dias.
  2. Reverificação de Domínios "INATIVO":

    • Qual o intervalo ideal para revisitar domínios temporariamente fora do ar?
    • Sugerimos 24 horas entre verificações.
  3. Remoção Manual ou Automática:

    • Devemos permitir remoções automáticas ou envolver aprovação manual em certos casos?

Próximos Passos

  1. Implementar o Serviço:
    • Configurar a estrutura do serviço em background para processar domínios.
  2. Treinar/Configurar a IA:
    • Treinar um modelo ou usar APIs de IA para classificação.
  3. Definir Políticas:
    • Estabelecer critérios claros para remoção e atualização de status.

Com essa abordagem, conseguimos um sistema escalável e dinâmico para gerenciar a lista de domínios, mantendo a precisão no bloqueio de sites de apostas. Estou à disposição para discutir e implementar essa ideia

RobsonTrasel commented 3 days ago

Pessoal, fiz o commit para essa issue de forma errônea. Podem somente ignorar os commits, obrigado!