Desinfecte una tabla de puntaje alto para eliminar términos ofensivos / nombres de usuario

43

Estoy creando una aplicación para un cliente, que han solicitado tener una tabla de puntaje visible públicamente. Mostrará su nombre de usuario, que es un campo de texto libre que los jugadores pueden ingresar. Es probable que el conteo de jugadores sea extremadamente bajo: esperaría 10 o 100 por día como máximo.

El campo de nombre de usuario tendrá más de 3 caracteres. Los nombres estarán vinculados a las cuentas de Firebase Auth, pero estos se crean a través de la aplicación, no están vinculados a nada como Google Play o una cuenta de Facebook o algo así. Creo que van a estar bien con la eliminación de nombres obviamente ofensivos, pero no van a tener recursos masivos dedicados a la moderación manual.

Cuando era un muchacho joven, el 100% de las tablas de puntaje de mi gabinete de arcade local consistía en un montón de palabras groseras y términos ofensivos (o variaciones de tales palabras).

No puedo imaginar que Internet haya mejorado las cosas en absoluto.

¿Cómo puedo desinfectar los nombres de usuario para que sean seguros para mostrar?

NeilD
fuente
10
¿El cliente desea desinfectar los nombres de usuario? Si no, entonces no es realmente tu problema en este momento.
MonkeyZeus
55
Primeros pensamientos: - Alerte al cliente sobre este peligro, pregúntele si quiere gastar dinero en su tiempo para manejarlo. - Pídale al cliente que le dé una lista de términos no permitidos para eliminar. - Honestamente, este es un campo minado. Pregúnteles si quieren que sea público.
AJFaraday
44
Ver también: el problema Scunthorp .
Draco18s
44
No es exactamente lo mismo, pero lo suficientemente similar: ¿ filtros de obscenidad: mala idea o increíblemente mala idea?
Gary
3
¿Se permiten emoticones? ¿Cómo se mostrará el marcador? ¿Puedo ascii dibujar dong una vez que encontré la forma de ingresar el puntaje en su marcador? ¿Puedo ingresar la URL como nombre ("XYZ.com", "XYZ_Com", "XYZ_Dot_Com")?
xdtTransform

Respuestas:

73

Te recomiendo que dejes que el cliente lo haga manualmente.

Desde el punto de vista del costo, esta vez tienes suerte:

  • No espera más de 100 usuarios / día, posiblemente tan bajo como 10 / día
  • Tiene un sistema de autenticación, lo que significa que las prohibiciones pueden ser permanentes
  • Tiene un cliente que se complace en eliminar nombres (con poca frecuencia)

La realidad es que los 10 minutos que le tomará a alguien revisar las principales tablas de clasificación y prohibir cualquier nombre extremo, simplemente serán más baratos y confiables, que pasar tiempo en una solución de ingeniería (que tendrá problemas).

Con un recuento de jugadores tan bajo, es poco probable que esto deba hacerse con frecuencia, incluso una vez por semana durante el pico es probable que sea suficiente.


Pero tengo mucho tiempo, puedo hacer algo, ¿verdad?

Incorrecto.

Es muy fácil hacer algo mal, que es más perjudicial para la marca del cliente que no hacer nada en absoluto.

¿Quieres usar Regex para atrapar todos los malos nombres? Mejor espero que lo haga perfectamente bien, y también filtre todos los falsos positivos de múltiples bases de datos de nombres internacionales de personas reales:

https://en.wikipedia.org/wiki/Scunthorpe_problem

E incluso si gestionas con éxito lo anterior, los jugadores no son tontos: encontrarán fácilmente una forma de sortear tu sistema para crear un nombre igualmente ofensivo que no estás captando.

Como mínimo, acaba de agregar aún más trabajo para mantener estas reglas actualizadas, en comparación con el pequeño trabajo manual de solo mirar los puntajes más altos y la prohibición.


No, pero en serio, este es un juego para niños: el cliente ha dejado en claro que NO HAY TOLERANCIA para nombres ofensivos. Tiene que haber algo!

Si esto es sinceramente el caso, y no puedes tolerar nombres ofensivos en absoluto. La única solución realista es no dejar que tus jugadores creen sus propios nombres.

Esta es la solución que encontrará en casi todos los sitios web de juegos para niños, como Cartoon Network.

En lugar de dar una entrada en blanco, le da una selección de "partes de nombre" prefabricadas. Por ejemplo:

  • Un adjetivo, como "Impresionante", "Fantástico", "Astuto"

  • Un medio, como "Barbudo", "Ojo láser", "Pirata"

  • Un sustantivo, como "Maestro", "Ganador", "Detector"

Lo que restringe los nombres para mostrar a cosas como "Awesome Pirate Master".

También considere rápidamente qué listas de palabras está utilizando. No tiene sentido implementar este sistema si el usuario puede manipular nombres para obtener cosas que todavía suenan ofensivas o sucias.

Por supuesto, también existe la posibilidad de duplicados, pero puede escribir esto (3 listas de 100 palabras, ya da 1 millón de nombres posibles) debido a la poca cantidad de jugadores que tiene, o si es necesario, aún puede verificar eso nadie más tiene el nombre en el registro.

Siendo realistas, esta puede ser la solución más efectiva si estás seriamente preocupado por los malos nombres. Pero sí necesita hacer un análisis de costos y descubrir si vale la pena incluso hacer este sistema en comparación con simples controles manuales.

Bilkokuya
fuente
25
Me gusta esta respuesta, porque "no automatice algo hasta que sepa más sobre el problema" casi siempre ha sido lo correcto en mi experiencia.
NeilD
55
Me recuerda al universo de Lego y la detección del pene.
n0rd
77
Un niño de 4 años había tenido acceso a uno de mis juegos de consola donde puedes crear personajes. Esa ranura para guardar estaba llena de caca, vagabundo, pipí, etc., etc. Los niños hacen esto y se ríen mucho ...
Nelson
44
"Pero no, en serio, este es un juego para niños". ¿Has oído hablar de Lego Universe? Ni siquiera Lego podría construir un detector de pene . Nombre de las partes: "Pirata lingüista astuto".
Draco18s
7

Una pequeña base de usuarios probablemente no sea suficiente para restarle importancia a la facilidad de implementar una lista negra. Hay muchas bibliotecas y / o listas de palabras, como las mencionadas aquí, que pueden permitirle simplemente verificar los nombres de usuario con lo que considere inapropiado.

Si decidió intentar su propia lista, probablemente quiera usarla regexpara filtrar nombres.

Como señala Bilkokuya , puede haber problemas con los nombres legítimos en la lista negra. Esa es una decisión comercial que debe tomar su cliente , pero que usted debe / debe tomar en cuenta. No conozco ninguna forma de sortear el aspecto cultural, excepto que si espera una gran cantidad de usuarios de culturas en las que eso puede ser un problema, es posible que desee implementar un filtrado específico de la región.

Razones para implementar alguna forma de filtrado (además de las verificaciones manuales):

  • Facilidad de implementación. Probablemente no tomará más de una hora para que algo funcione.

  • Un elemento disuasorio para los bromistas menos dedicados.

  • Permite verificar en el momento de la inscripción, reduciendo la posibilidad de que alcancen la tabla de puntaje más alto.

  • Funciona con controles manuales.

  • Como se trata de un viejo problema, debería haber muchos recursos disponibles.

Marte
fuente