Очистить таблицу рекордов, чтобы удалить оскорбительные термины / имена пользователей

43

Я создаю приложение для клиента, которое они просили иметь общедоступную таблицу рекордов. Он будет отображать их имя пользователя, которое представляет собой поле с произвольным текстом, которое игроки могут вводить. Количество игроков, вероятно, будет чрезвычайно низким - я бы ожидал максимум 10 или 100 секунд в день.

Поле имени пользователя будет длиннее 3 символов. Имена будут привязаны к учетным записям Firebase Auth, но они создаются через приложение, а не привязаны к чему-либо вроде Google Play, учетной записи Facebook или чего-либо подобного. Я думаю, что они будут в порядке с удалением явно оскорбительных имен, но у них не будет больших ресурсов, посвященных ручной модерации.

Когда я был молодым, 100% моих рейтинговых таблиц в местном аркадном кабинете состояли из нескольких нецензурных слов и оскорбительных выражений (или вариаций таких слов).

Я не могу вообразить, что Интернет улучшил вещи вообще.

Как я могу санировать имена пользователей, чтобы сделать их безопасными для отображения?

Нейлд
источник
10
Желает ли клиент санировать имена пользователей? Если нет, то это действительно не ваша проблема на данный момент.
MonkeyZeus
5
Первые мысли: - Предупредите клиента об этой опасности, спросите, не хотят ли они потратить деньги на ваше время, чтобы справиться с этим. - Попросите клиента дать вам список запрещенных терминов для удаления. - Честно говоря, это минное поле. Спросите, хотят ли они, чтобы это было публично.
AJFaraday
4
Смотрите также: Проблема Сканторпа .
Draco18s
4
Не совсем то же самое, но достаточно похожее: Фильтры непристойности: плохая идея или невероятно плохая идея общения?
Гэри
3
Разрешены ли смайлики? Как будет отображаться табло? Могу ли я Ascii Draw Dong, когда я нашел способ ввести счет в вашем табло? Могу ли я ввести URL в качестве имени ("XYZ.com", "XYZ_Com", "XYZ_Dot_Com")?
xdtTransform

Ответы:

73

Я рекомендую вам просто позволить клиенту сделать это вручную.

С точки зрения затрат, на этот раз вам повезет:

  • Вы ожидаете не более 100 пользователей в день, возможно, до 10 в день
  • У вас есть система аутентификации, что означает, что запреты могут быть постоянными
  • У вас есть клиент, который с удовольствием удаляет имена (редко)

Реальность такова, что те 10 минут, которые понадобятся кому-то, чтобы просмотреть топ-листы лидеров и запретить любые экстремальные имена, будут просто дешевле и надежнее, чем вы тратите время на инженерное решение (которое будет иметь проблемы).

При таком малом количестве игр маловероятно, что это нужно будет делать часто - даже одного раза в неделю во время пика, вероятно, будет достаточно.


Но у меня много времени, я могу что-то сделать правильно?

Неправильно.

Вы можете очень легко сделать что-то не так, что более вредно для бренда клиента, чем ничего не делать вообще.

Хотите использовать Regex, чтобы поймать все плохие имена? Лучше надеяться, что вы все сделаете правильно, а также отфильтруете все ложные срабатывания из нескольких баз данных международных имен реальных людей:

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

И даже если вы успешно справитесь с вышеперечисленным, игроки не глупы - они очень легко найдут способ обойти вашу систему, чтобы создать столь же оскорбительное имя, которое вы не поймете.

Как минимум, вы только что добавили еще больше работы по обновлению этих правил по сравнению с небольшой ручной работой - просто смотреть на самые высокие оценки и банить.


Нет, но серьезно, это детская игра - клиент дал понять, что для оскорбительных имен не может быть никакой терпимости. Там должно быть что-то!

Если это действительно так, и вы не можете терпеть оскорбительные имена вообще. Единственное реалистичное решение - просто не позволять игрокам создавать свои собственные имена.

Это решение вы найдете практически на всех детских игровых сайтах, таких как Cartoon Network.

Вместо того, чтобы вводить пустые данные, вы выбираете готовые «части имени». Например:

  • Прилагательное, такое как «Удивительный», «Фантастический», «Хитрый»

  • Середина, такая как «Бородатый», «Лазерный глаз», «Пират»

  • Существительные, такие как «Мастер», «Победитель», «Детектор»

Что ограничивает отображаемые имена такими вещами, как «Awesome Pirate Master».

Также быстро рассмотрите, какие списки слов вы используете. Нет смысла внедрять эту систему, если пользователь может поиграть с именами, чтобы получить вещи, которые по-прежнему звучат оскорбительно или грязно.

Конечно, есть возможность для дубликатов, но вы можете либо списать их (3 списка по 100 слов, уже дает 1 миллион возможных имен) из-за того, что у вас мало игроков, либо, если необходимо, вы можете проверить, что никто другой не имеет имени при регистрации.

На самом деле, это может быть наиболее эффективным решением, если вы серьезно обеспокоены плохими именами. Но вам нужно провести анализ затрат и выяснить, стоит ли даже делать эту систему действительно по сравнению с простыми ручными проверками.

Bilkokuya
источник
25
Мне нравится этот ответ, потому что «не автоматизируйте что-либо, пока вы не узнаете больше о проблеме», почти всегда было правильным решением в моем опыте.
NeilD
5
Напоминает мне о вселенной Lego и обнаружении пениса.
n0rd
7
4-летний получил доступ к одной из моих консольных игр, где вы можете создавать персонажей. Этот слот для сохранения был заполнен какашками, попой, мочой и т. Д. И т. Д. Дети делают это и много смеются ...
Нельсон,
4
«Но нет, серьезно, это детская игра». Вы слышали о Lego Universe? Даже Лего не смог создать детектор пениса . Название части: «Хитрый лингвист-пират».
Draco18s
7

Небольшой пользовательской базы, вероятно, недостаточно, чтобы отвлечь от простоты внедрения черного списка. Существует много библиотек и / или списков слов, таких как те, на которые есть ссылки, которые могут позволить вам просто проверять имена пользователей на предмет того, что вы считаете неуместным.

Если вы решили попробовать свой собственный список, вы, вероятно, захотите использовать его regexдля фильтрации имен.

Как указывает Билкокуйя , могут быть проблемы с тем, что законные имена попадают в черный список. Это бизнес-решение для вашего клиента , но вы должны / должны сообщить ему об этом. Я не знаю каких-либо способов обойти культурный аспект, за исключением того, что, если вы ожидаете большое количество пользователей из культур, где это может быть проблемой, вы можете захотеть применить фильтрацию по регионам.

Причины для внедрения некоторой формы фильтрации (в дополнение к ручным проверкам):

  • Простота реализации. Вероятно, не займет больше часа, чтобы что-то пошло.

  • Сдерживающий фактор для менее преданных шутников.

  • Позволяет проверять во время регистрации, снижая вероятность того, что они даже достигнут таблицы рекордов.

  • Работает с ручными проверками.

  • Ввиду того, что это старая проблема, должно быть доступно много ресурсов.

Марс
источник