Estou criando um aplicativo para um cliente, que ele solicitou para ter uma tabela de recordes visível ao público. Ele exibirá o nome de usuário, que é um campo de texto livre que os jogadores podem inserir. É provável que a contagem de jogadores seja extremamente baixa - eu esperaria 10s ou 100s / dia no máximo.
O campo de nome de usuário terá mais de 3 caracteres. Os nomes serão vinculados às contas de autenticação do Firebase, mas são criados por meio do aplicativo, não vinculados a nada como o Google Play ou uma conta do Facebook ou algo assim. Eu acho que eles ficarão bem em excluir nomes obviamente ofensivos, mas não terão grandes recursos dedicados à moderação manual.
Quando eu era jovem, 100% das minhas tabelas de pontuação alta nos gabinetes de fliperama locais consistiam em um monte de palavrões e termos ofensivos (ou variações de tais palavras).
Não consigo imaginar que a internet tenha melhorado as coisas.
Como posso limpar nomes de usuários para torná-los seguros para exibição?
fonte
Respostas:
Eu recomendo que você deixe o cliente fazer isso manualmente.
De uma perspectiva de custo, desta vez você tem sorte:
A realidade é que os 10 minutos que alguém levará para examinar as principais tabelas de classificação e banir nomes extremos - serão simplesmente mais baratos e mais confiáveis do que você gastando tempo com uma solução de engenharia (que terá problemas).
Com um número de reprodução tão baixo, é improvável que isso precise ser feito com frequência - mesmo uma vez por semana durante o pico é suficiente.
Mas tenho muito tempo, posso fazer algo certo?
Errado.
Você pode facilmente fazer algo errado, que é mais prejudicial para a marca do cliente do que não fazer nada.
Deseja usar o Regex para pegar todos os nomes ruins? Espero que você acerte perfeitamente e também filtre todos os falsos positivos de vários bancos de dados de nomes internacionais de pessoas reais:
https://en.wikipedia.org/wiki/Scunthorpe_problem
E mesmo que você gerencie o que foi mencionado acima com sucesso, os jogadores não são burros - eles encontrarão uma maneira fácil de contornar o sistema para criar um nome igualmente ofensivo que você não está entendendo.
No mínimo, você acabou de adicionar ainda mais trabalho para manter essas regras atualizadas, em comparação com o pequeno trabalho manual de apenas observar as pontuações e proibições mais altas.
Não, mas falando sério, este é um jogo infantil - o cliente deixou claro que não pode haver tolerância para nomes ofensivos. Tem que haver alguma coisa!
Se esse for o caso, honestamente, e você não pode tolerar nomes ofensivos. A única solução realista é não deixar seus jogadores criarem seus próprios nomes.
Esta é a solução que você encontrará em quase todos os sites de jogos infantis, como o Cartoon Network.
Em vez de fornecer uma entrada em branco, você oferece uma seleção de "partes de nome" pré-fabricadas. Por exemplo:
Um adjetivo, como "Incrível", "Fantástico", "Astucioso"
Um meio, como "Barbudo", "Olho de Laser", "Pirata"
Um substantivo, como "Mestre", "Vencedor", "Detector"
O que restringe os nomes de exibição a coisas como "Awesome Pirate Master".
Também faça uma rápida consideração de quais listas de palavras você está usando. Não faz sentido implementar esse sistema se o usuário for capaz de mexer em nomes para obter coisas que ainda soam ofensivas ou sujas.
Claro, também existe a possibilidade de duplicatas - mas você pode escrever isso (3 listas de 100 palavras, já fornece 1 milhão de nomes possíveis) devido ao número de jogadores que possui ou se necessário - você ainda pode verificar se ninguém mais tem o nome no registro.
Realisticamente, essa pode ser a solução mais eficaz se você estiver seriamente preocupado com os maus nomes. Mas você precisa fazer uma análise de custos e descobrir se vale a pena fazer esse sistema, mesmo se comparado a verificações manuais simples.
fonte
Uma pequena base de usuários provavelmente não é suficiente para diminuir a facilidade de implementar uma lista negra. Existem muitas bibliotecas e / ou listas de palavras, como as mencionadas aqui, que podem permitir que você verifique os nomes de usuários com o que considerar inapropriado.
Se você decidiu tentar sua própria lista, provavelmente deseja usar
regex
para filtrar nomes.Como Bilkokuya aponta, pode haver problemas com nomes legítimos na lista negra. Essa é uma decisão comercial para seu cliente , mas que você pode / deve conscientizá-lo. Não conheço nenhuma maneira de contornar o aspecto cultural, exceto que, se você espera um grande número de usuários de culturas onde isso pode ser um problema, convém implementar a filtragem específica da região.
Razões para implementar alguma forma de filtragem (além das verificações manuais):
Facilidade de implementação. Provavelmente não vai demorar mais de uma hora para conseguir algo .
Um impedimento para os brincalhões menos dedicados.
Permite checar no momento da inscrição, diminuindo a chance de eles chegarem à tabela de recordes.
Funciona com verificações manuais.
Considerando que é um problema antigo, deve haver muitos recursos disponíveis.
fonte