Qual é a melhor maneira de fazer exibição de rastreamento básico em uma página web?

StackOverflow https://stackoverflow.com/questions/410785

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho um voltado para web, com acesso anônimo, blog diretório e blogs e gostaria de controlar o número de pontos de vista de cada um dos posts recebe.

Eu quero manter isso o mais simples possível necessidade, a precisão ser apenas uma aproximação. Isto não é para analytics (temos Google para isso) e eu não quero fazer qualquer análise de log para puxar as estatísticas como a execução de tarefas em segundo plano neste ambiente é complicado e eu quero que os números para ser o mais fresco possível.

Minha solução atual é a seguinte:

  1. Um controle web que simplesmente registra uma exibição em uma tabela para cada GET.
  2. Exclui uma lista de crawlers conhecidos usando um regex e string de UserAgent
  3. Dispõe sobre a exclusão de determinados endereços IP (spammers conhecidos)
  4. Fornece para bloquear abaixo algumas mensagens (quando os spammers vêm para ele)

Isso realmente parece estar a fazer um trabalho muito bom, mas algumas coisas me incomodam. Os spammers ainda bateu alguns posts, distorcendo assim as vistas. Eu ainda tenho que monitorar manualmente os pontos de vista uma atualização minha lista de "maus" endereços IP.

Alguém tem algumas sugestões melhores para mim? Alguém sabe como os pontos de vista sobre questões StackOverflow são rastreadas?

Foi útil?

Solução

Parece que a sua solução atual é realmente muito bom.

Implementamos um onde o código do servidor que emitiu o conteúdo vista também atualizou uma tabela de banco de dados que armazenou o URL (na verdade um código de identificação especial para a URL desde o URL pode mudar ao longo do tempo) ea vista contagem.

Este foi realmente para um sistema com mensagens escritas pelo usuário que outros pudessem comentar, mas aplica-se igualmente à situação em que você é o único usuário criar os postos de trabalho (se eu entendi sua descrição corretamente).

Nós tivemos que fazer o seguinte para minimizar (não eliminar, infelizmente) inclinação.

  • Para usuários conectados, cada usuário só pode adicionar um ponto vista a um poste. SEMPRE. Sem exceções.
  • Para usuários anônimos, cada endereço IP só poderia adicionar um ponto vista a um posto de cada mês. Este foi um pouco menos confiável como endereços IP pode ser 'partilhada' (NAT e assim por diante) do nosso ponto de vista. A razão nós relaxamos o "NUNCA" requisito acima foi por esta razão partilha.
  • As mensagens em si foram limitados a ter um ponto de vista agregado por período de tempo (o período de baixa iniciado (por exemplo, 10 segundos) e aumentou gradualmente (a, digamos, 5 minutos) para novos postos foram autorizados a vista acumular mais rápido, devido a sua novidade). Isto teve o cuidado da maioria de spam bots, uma vez que descobrimos que eles tendem a atacar muito tempo após o post foi criado.
  • A remoção de um spam de comentários em um post, ou uma tentativa fracassada de desvio CAPTCHA (veja abaixo), adicionado automaticamente que IP à lista negra e reduziu a contagem de visualização para esse post.
  • Se um IP na lista negra não tinha tentado a deixar um comentário em N dias (configurável), foi removido da lista negra. Esta regra, ea regra anterior, minimizou a intervenção manual na manutenção da lista negra, só tivemos de respostas do monitor para conteúdo de spam.
  • CAPTCHA. Este resolveu um muito dos nossos problemas de spam, especialmente uma vez que não apenas dependem de OCR do tipo coisas (como "o que é esta palavra -> 'opcionalmente'); nós realmente perguntas (como" o que é 2 multiplicada por meio de 8? ") que quebrar os bots de reconhecimento de caracteres mudos. Ele não vai bater as hordas de disjuntores CAPTCHA trabalho barato (a menos que seus matemática é muito ruim :-) mas as melhorias de no-CAPTCHA foram impressionantes.
  • usuários registrados não foram objeto de CAPTCHA, mas o spam tem a conta imediatamente excluído, IP na lista negra e sua visão subtraído do post.
  • Eu tenho vergonha de admitir que não chegou a descontar os crawlers (espero que o cliente não está lendo este :-). Para ser honesto, eles são provavelmente apenas a adição de um número mínimo de pontos de vista de cada mês devido à nossa regra de endereço IP (a menos que eles estão nos fervilhando com vários endereços IP).

Então, basicamente, eu estou sugeriu o seguinte como possíveis melhorias. Você deve, é claro, sempre monitorar como eles vão para ver se eles estão trabalhando ou não.

  • CAPTCHA.
  • Automatic atualizações de lista negra com base no comportamento do usuário.
  • Limitando vista contagem aumenta de endereços IP idênticos.
  • A limitação de contagem de vista aumenta para uma determinada taxa.

No esquema que você escolher vai ser perfeito (por exemplo, a nossa regra de um mês), mas, desde que todas as mensagens estão seguindo o mesmo conjunto de regras, você ainda obter um bom valor comparativo. Como você disse, necessidade precisão ser apenas uma aproximação.

Outras dicas

Sugestões:

  1. Mover a lógica contagem de ocorrências de um controle de usuário em uma classe base da página.
  2. Redesenho da lista de exclusões para ser dinamicamente atualizável (ou seja, armazená-lo em um banco de dados ou até mesmo em um arquivo xml)
  3. Gravar todos os hits. Em um intervalo regular, ter uma corrida trabalho cron através dos novos hits e determinar se eles são incluídos ou excluídos. Se você fizer a exclusão para cada golpe, cada usuário tem que esperar para a lógica de correspondência a ter lugar.
  4. Come-se com algum algoritmo para detectar automaticamente spammers / bots e adicioná-los à sua lista negra. E / ou subscrever uma terceira lista negra do partido.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top