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
- He eliminado algunas palabras que no quiero que digan.
- He eliminado enlaces/correos electrónicos del chat.
- Les he impedido enviar mensajes demasiado rápido.
- 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.
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
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. –
Gracias por los comentarios. Supongo que tendré que depender de unos moderadores para limpiar el chat. –