Pergunta

Eu escrevi um quadro de mensagens como o meu primeiro projeto ASP.NET. Parece que funciona bem até agora. No entanto, uma das características que eu tenho é que cada mensagem tem uma classificação de spam. É simplesmente o número de vezes que os telespectadores têm marcado a mensagem como spam, dividido pelo número total de vezes que a mensagem foi visto. A idéia é permitir que os usuários a ignorar mensagens com altos índices de spam, se optar por fazê-lo.

No entanto, todo o sistema pode ser frustrado por um spammer simplesmente vendo sua própria mensagem e refrescante que um monte de vezes, o que irá aumentar o número de vezes que a mensagem foi visto. Ele também pode ser frustrado por alguém que marca a mensagem como spam um monte de vezes em uma fileira. Eu preciso de uma maneira de determinar se um visitante particular, já visualizar uma mensagem particular, e uma maneira de determinar se um determinado usuário já marcou uma determinada mensagem como spam.

Eu não quero exigir o registro - Eu quero que ninguém será capaz de ver ou postar mensagens. Duas idéias que eu estive pensando em se definir um cookie quando o visitante chega para o site para que eu possa acompanhá-los, ou criar uma nova tabela de dados que os logs endereços IP de usuários quando eles vêem uma mensagem ou marcá-lo como spam. ninguém pode pensar em uma maneira melhor? Does .NET têm qualquer construído em características que poderia me ajudar a determinar se o visitante está vendo uma página pela primeira vez?

Foi útil?

Solução

A medida mais confiável é o endereço IP de filtragem como o spammer poderia contornar qualquer outro método por escrever seu próprio programa para solicitar a página. Ele irá afectar os seus clientes por trás NAT, mas por spam fins de filtragem, ele funciona muito OK.

Outras dicas

ASP.Net tem um built-in recurso chamado Personalization que pode ser usado para detectar e lembrar usuários anônimos ao lado normal "registado" usuários.

Para usuários anônimos usar o IP. Isto vai dar falsos positivos, especialmente para alguns provedores de internet, mas parece que um trade-off decente para o seu cenário. Também gostaria de torná-lo simples para os usuários a se identificar, id aberto é uma ótima maneira de fazer isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top