Ich erstelle eine App für einen Kunden, für den eine öffentlich sichtbare Highscore-Tabelle angefordert wurde. Der Benutzername wird angezeigt. Dies ist ein Freitextfeld, das die Spieler eingeben können. Die Anzahl der Spieler dürfte extrem niedrig sein - ich würde höchstens 10 oder 100 pro Tag erwarten.
Das Feld Benutzername ist länger als 3 Zeichen. Die Namen werden an Firebase Auth-Konten gebunden, diese werden jedoch über die App erstellt und sind nicht an etwas wie Google Play oder ein Facebook-Konto oder ähnliches gebunden. Ich denke, sie werden in Ordnung sein, offensichtliche anstößige Namen zu löschen, aber sie werden keine massiven Ressourcen für die manuelle Moderation haben.
Als ich ein junger Bursche war, bestanden 100% meiner Highscore-Tabellen in meinem lokalen Arcade-Kabinett aus einer Reihe von Schimpfwörtern und anstößigen Begriffen (oder Variationen solcher Wörter).
Ich kann mir nicht vorstellen, dass das Internet die Dinge überhaupt verbessert hat.
Wie kann ich Benutzernamen bereinigen, um sie für die Anzeige sicher zu machen?
quelle
Antworten:
Ich empfehle, dass Sie es einfach dem Kunden von Hand überlassen.
Aus Kostengründen haben Sie diesmal Glück auf Ihrer Seite:
Die Realität ist, dass es 10 Minuten dauert, bis sich jemand die Bestenlisten ansieht und alle extremen Namen verbietet. Dies ist einfach billiger und zuverlässiger, als wenn Sie Zeit für eine technische Lösung aufwenden (die Probleme haben wird).
Bei einer so geringen Anzahl an Spielern ist es unwahrscheinlich, dass dies häufig erforderlich ist - sogar einmal pro Woche in Spitzenzeiten dürfte dies ausreichen.
Aber ich habe genug Zeit, ich kann etwas richtig machen?
Falsch.
Man kann sehr leicht etwas falsch machen, was der Marke des Kunden mehr schadet als gar nichts.
Möchten Sie Regex verwenden, um alle schlechten Namen zu fangen? Wir hoffen, dass Sie alles richtig machen und auch alle False-Positives aus mehreren Datenbanken mit internationalen Real-People-Namen filtern:
https://en.wikipedia.org/wiki/Scunthorpe_problem
Und selbst wenn Sie das erfolgreich schaffen, sind die Spieler nicht dumm - sie werden sehr leicht einen Weg finden, um einen ebenso anstößigen Namen zu kreieren, den Sie nicht fangen.
Zumindest haben Sie gerade noch mehr Arbeit in die Aktualisierung dieser Regeln gesteckt, verglichen mit der kleinen manuellen Arbeit, nur die höchsten Punktzahlen zu betrachten und zu verbieten.
Nein, aber im Ernst, dies ist ein Kinderspiel - der Kunde hat klargestellt, dass es KEINE TOLERANZ für beleidigende Namen geben kann. Es muss etwas geben!
Wenn dies ehrlich gesagt der Fall ist und Sie überhaupt keine beleidigenden Namen tolerieren können. Die einzig realistische Lösung besteht darin, Ihre Spieler nicht ihre eigenen Namen erstellen zu lassen.
Dies ist die Lösung, die Sie auf fast allen Kinderspielwebsites finden, z. B. auf Cartoon Network.
Anstatt eine leere Eingabe zu machen, geben Sie eine Auswahl vorgefertigter "Namensteile" an. Zum Beispiel:
Ein Adjektiv wie "Awesome", "Fantastic", "Cunning"
Eine Mitte, wie "Bart", "Laserauge", "Pirat"
Ein Substantiv wie "Master", "Winner", "Detector"
Wodurch Anzeigenamen auf Dinge wie "Awesome Pirate Master" beschränkt werden.
Überlegen Sie auch schnell, welche Wortlisten Sie verwenden. Es macht keinen Sinn, dieses System zu implementieren, wenn der Benutzer in der Lage ist, Namen zu fummeln, um Dinge zu erhalten, die noch anstößig oder schmutzig klingen.
Natürlich gibt es auch die Möglichkeit von Duplikaten - aber Sie können dies entweder abschreiben (3 Listen mit 100 Wörtern, die bereits 1 Million mögliche Namen enthalten), je nachdem, wie wenig Spieler Sie haben, oder falls erforderlich, Sie können dies trotzdem überprüfen niemand anderes hat den Namen bei der Registrierung.
Realistisch gesehen ist dies die effektivste Lösung, wenn Sie sich ernsthafte Sorgen über schlechte Namen machen. Sie müssen jedoch eine Kostenanalyse durchführen und feststellen, ob es sich im Vergleich zu einfachen manuellen Überprüfungen wirklich lohnt, dieses System selbst herzustellen.
quelle
Eine kleine Benutzerbasis reicht wahrscheinlich nicht aus, um die einfache Implementierung einer Blacklist zu beeinträchtigen. Es gibt viele Bibliotheken und / oder Wortlisten , auf die hier verwiesen wird , mit denen Sie Benutzernamen einfach mit den Angaben vergleichen können, die Sie für unangemessen halten.
Wenn Sie sich entschieden haben, eine eigene Liste
regex
zu erstellen, möchten Sie wahrscheinlich Namen herausfiltern.Wie Bilkokuya betont , kann es Probleme geben, wenn legitime Namen auf die schwarze Liste gesetzt werden. Dies ist eine geschäftliche Entscheidung, die Ihr Kunde treffen muss, auf die Sie ihn jedoch aufmerksam machen können / sollten. Ich kenne keine Möglichkeiten, um den kulturellen Aspekt zu umgehen, außer dass Sie, wenn Sie eine große Anzahl von Benutzern aus Kulturen erwarten, bei denen dies ein Problem sein könnte, möglicherweise eine regionenspezifische Filterung implementieren möchten.
Gründe für die Implementierung einer Art Filter (zusätzlich zu manuellen Überprüfungen):
Leichtigkeit der Durchsetzung. Es wird wahrscheinlich nicht länger als eine Stunde dauern, bis etwas los ist.
Eine Abschreckung für die weniger engagierten Scherze.
Ermöglicht die Überprüfung zum Zeitpunkt der Registrierung, wodurch die Wahrscheinlichkeit verringert wird, dass sie sogar die Highscore-Tabelle erreichen.
Funktioniert mit manuellen Überprüfungen.
Da es sich um ein altes Problem handelt, sollten viele Ressourcen verfügbar sein.
quelle