2012-06-11 11 views
5

Digamos que alguien comienza a enviar spam a un chat con caracteres aleatorios. ¿Cómo puedo determinar en C# si la cadena es solo caracteres aleatorios o legítimamente hablando?Detectar spam en una sala de chat

  1. He eliminado algunas palabras que no quiero que digan.
  2. He eliminado enlaces/correos electrónicos del chat.
  3. Les he impedido enviar mensajes demasiado rápido.
  4. He impedido que diga lo mismo varias veces seguidas.

Número 4 es donde comienza el problema. Bueno, el problema en realidad comienza cuando trato de filtrar un chat, pero eso es otra discusión. Ahora se han enterado de que solo comprueba si es lo mismo y ahora envían caracteres aleatorios al azar.

Esto es para un juego que solo tengo control sobre el código de los servidores.

+3

No ayudaría: una vez que aprenda a detectar secuencias aleatorias de caracteres, comenzarán a construir secuencias aleatorias de palabras en inglés, oraciones en inglés que casi tienen sentido o incluso extractos de sitios de noticias que parecen legítimos incluso para los humanos. La carrera de armamentos está activa, una computadora contra un hombre no puede ganarla. Necesita ojos humanos para detectar spam, CAPTCHA para minimizarlo, y buenas políticas de prohibición para desalentar el spam. – dasblinkenlight

+6

Desafortunadamente, tener cualquier tipo de sistema automático para detectar spam es muy difícil si el spammer está dedicado. Si comienzas a buscar caracteres aleatorios, lo siguiente que harán es agregar un grupo de palabras aleatorias extraídas de un diccionario. Si de alguna manera logras detectar eso, comenzarán a agregar oraciones enteras extraídas automáticamente de otros sitios web. Eventualmente tendrá que inventar algún tipo de gran heurística sensible al contexto, como los modernos filtros de correo no deseado. –

+0

Gracias por los comentarios. Supongo que tendré que depender de unos moderadores para limpiar el chat. –

Respuesta

4

En cualquier caso, solo puede llegar tan lejos antes de que sus esfuerzos tengan poco o ningún retorno frente al esfuerzo de codificación. Lo que probablemente sea mejor es algo así como el desbordamiento de pila o el trabajo de World of Warcraft, donde los usuarios tienen más control. En WOW un jugador puede hacer clic en el nombre de alguien en el cuadro de chat y simplemente informar como spam (mer).

No sería difícil decir si un porcentaje de personas que pueden ver el mensaje, informarlo, entonces lo más probable es que esa persona esté enviando spam. Luego puede decidirlo automáticamente o marcarlo para revisarlo, o como quiera tratarlo. Dado que su problema es detectar correo no deseado, si los usuarios van a verlo (que son), ¿por qué no les permiten ayudar a aliviar el problema?

Creo que siendo honesto con los usuarios y diciendo, tenemos un problema, necesitamos su ayuda, y para que sea fácil para los usuarios ayudar muestra un nivel de madurez.

Cuestiones relacionadas