Sanitasi tabel skor tinggi untuk menghapus istilah / nama pengguna yang tidak sopan

43

Saya sedang membangun aplikasi untuk klien, yang mereka minta agar memiliki tabel skor tinggi yang dapat dilihat oleh publik. Ini akan menampilkan nama pengguna mereka, yang merupakan bidang teks bebas yang bisa dimasukkan oleh pemain. Jumlah pemain cenderung sangat rendah - saya berharap paling banyak 10 atau 100 / hari.

Bidang nama pengguna akan lebih dari 3 karakter. Nama-nama itu akan diikat ke akun Firebase Auth, tetapi ini dibuat melalui aplikasi, tidak diikat ke apa pun seperti Google Play atau akun Facebook atau semacamnya. Saya pikir mereka akan baik-baik saja dengan menghapus nama-nama yang jelas menyinggung, tetapi mereka tidak akan memiliki sumber daya besar yang ditujukan untuk moderasi manual.

Ketika saya masih muda, 100% meja skor tinggi kabinet arcade saya terdiri dari banyak kata-kata umpatan dan istilah-istilah ofensif (atau variasi kata-kata seperti itu).

Saya tidak bisa membayangkan internet telah memperbaiki masalah sama sekali.

Bagaimana saya bisa membersihkan nama pengguna agar aman untuk ditampilkan?

Tidak
sumber
10
Apakah klien ingin membersihkan nama pengguna? Jika tidak maka itu benar-benar bukan masalah Anda pada saat ini.
MonkeyZeus
5
Pikiran pertama: - Beri tahu klien tentang bahaya ini, tanyakan apakah mereka ingin menghabiskan uang pada waktu Anda untuk menanganinya. - Minta klien untuk memberi Anda daftar istilah yang tidak diizinkan untuk dihapus. - Jujur, ini ladang ranjau. Tanyakan apakah mereka menginginkannya terbuka untuk umum.
AJFaraday
4
Lihat juga: Masalah Scunthorp .
Draco18s
4
Bukan hal yang persis sama, tetapi cukup serupa: Filter Kecabulan: Ide Buruk, atau Ide Buruk yang Menyertainya?
Gary
3
Apakah emotikon diizinkan? Bagaimana papan skor akan ditampilkan? Bisakah saya ascii menggambar dong setelah saya menemukan cara untuk memasukkan skor di papan skor Anda? Bolehkah saya memasukkan Url sebagai nama ("XYZ.com", "XYZ_Com", "XYZ_Dot_Com")?
xdtTransformasi

Jawaban:

73

Saya sarankan Anda membiarkan klien melakukannya secara manual.

Dari perspektif biaya, Anda beruntung kali ini:

  • Anda mengharapkan tidak lebih dari 100 pengguna / hari, mungkin serendah 10 / hari
  • Anda memiliki sistem otentikasi, yang berarti larangan bisa permanen
  • Anda memiliki klien yang senang menghapus nama (jarang)

Kenyataannya adalah, 10 menit yang dibutuhkan seseorang untuk melihat papan peringkat teratas dan melarang nama-nama ekstrem - hanya akan lebih murah dan lebih dapat diandalkan, daripada Anda menghabiskan waktu pada solusi teknik (yang akan memiliki masalah).

Dengan jumlah pemain yang begitu sedikit, tidak mungkin ini perlu sering dilakukan - bahkan sekali seminggu selama puncak mungkin cukup.


Tapi saya punya banyak waktu, saya bisa melakukan sesuatu dengan benar?

Salah.

Anda dapat dengan mudah melakukan kesalahan, yang lebih merusak merek klien daripada tidak melakukan apa-apa sama sekali.

Ingin menggunakan Regex untuk menangkap semua nama buruk? Lebih baik harap Anda melakukannya dengan benar, dan juga memfilter semua false-positive dari banyak basis data nama orang-orang internasional:

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

Dan bahkan jika Anda berhasil mengelola hal di atas, pemain tidak bodoh - mereka akan dengan mudah menemukan cara di sekitar sistem Anda untuk membuat nama yang sama-sama ofensif yang tidak Anda tangkap.

Paling tidak, Anda baru saja menambahkan lebih banyak pekerjaan dalam menjaga agar aturan ini diperbarui, dibandingkan dengan pekerjaan manual kecil hanya dengan melihat skor tertinggi dan melarang.


Tidak, tapi serius, ini adalah permainan anak-anak - klien telah menjelaskan bahwa TIDAK ADA TOLERANSI untuk nama-nama yang menyinggung. Pasti ada sesuatu!

Jika ini benar-benar kasusnya, dan Anda tidak bisa mentolerir nama ofensif sama sekali. Satu-satunya solusi realistis adalah tidak membiarkan pemain Anda membuat nama mereka sendiri.

Ini adalah solusi yang akan Anda temukan di hampir semua situs web permainan anak-anak, seperti Cartoon Network.

Alih-alih memberikan input kosong, Anda memberikan pilihan "bagian nama" premade. Sebagai contoh:

  • Kata sifat, seperti "Luar Biasa", "Fantastis", "Licik"

  • Bagian tengah, seperti "Bearded", "Laser-eye", "Pirate"

  • Kata benda, seperti "Master", "Winner", "Detector"

Yang membatasi menampilkan nama untuk hal-hal seperti "Master Bajak Laut yang Mengagumkan".

Juga berikan pertimbangan cepat tentang daftar kata apa yang Anda gunakan. Tidak ada gunanya menerapkan sistem ini jika pengguna dapat mengutak-atik nama untuk mendapatkan hal-hal yang masih terdengar ofensif atau kotor.

Tentu saja, ada kemungkinan untuk duplikat juga - tetapi Anda dapat menulis ini (3 daftar 100 kata, sudah memberikan 1 juta nama yang mungkin) karena berapa sedikit pemain yang Anda miliki, atau jika perlu - Anda masih dapat memeriksa bahwa tidak ada orang lain yang memiliki nama pada pendaftaran.

Secara realistis, ini mungkin solusi yang paling efektif jika Anda benar-benar khawatir tentang nama buruk. Tetapi Anda perlu melakukan analisis biaya, dan menemukan apakah membuat sistem ini benar-benar layak dibandingkan dengan pemeriksaan manual yang sederhana.

Bilkokuya
sumber
25
Saya suka jawaban ini, karena "jangan mengotomatisasi sesuatu sampai Anda tahu lebih banyak tentang masalahnya" hampir selalu menjadi hal yang tepat untuk dilakukan dalam pengalaman saya.
NeilD
5
Mengingatkan saya pada Lego universe dan deteksi penis.
n0rd
7
Seorang anak berusia 4 tahun mendapatkan akses ke salah satu game konsol saya di mana Anda dapat membuat karakter. Slot penyimpanan itu dipenuhi dengan kotoran, gelandangan, kencing, dll, dll. Anak-anak melakukan ini, dan banyak tertawa ...
Nelson
4
"Tapi tidak, serius, ini adalah permainan anak-anak." Pernahkah Anda mendengar tentang Lego Universe? Bahkan Lego tidak bisa membuat detektor penis . Nama bagian: "Bajak Laut Ahli Bahasa Licik."
Draco18s
7

Basis pengguna kecil mungkin tidak cukup untuk mengurangi kemudahan menerapkan daftar hitam. Ada banyak perpustakaan dan / atau daftar kata seperti yang direferensikan di sini yang memungkinkan Anda memeriksa nama pengguna terhadap apa pun yang Anda anggap tidak pantas.

Jika Anda memutuskan untuk mencoba daftar Anda sendiri, Anda mungkin ingin menggunakan regexuntuk menyaring nama.

Seperti yang ditunjukkan Bilkokuya , mungkin ada masalah dengan nama-nama sah yang masuk daftar hitam. Itu adalah keputusan bisnis yang harus dibuat klien Anda , tetapi keputusan yang dapat Anda / harus buat mereka sadari. Saya tidak mengetahui adanya cara untuk menyiasati aspek budaya, kecuali bahwa jika Anda mengharapkan sejumlah besar pengguna dari budaya yang mungkin menjadi masalah, Anda mungkin ingin menerapkan pemfilteran khusus wilayah.

Alasan untuk menerapkan beberapa bentuk pemfilteran (selain pemeriksaan manual):

  • Kemudahan implementasi. Mungkin tidak akan membutuhkan lebih dari satu jam untuk menyelesaikan sesuatu .

  • Sebuah pencegah bagi orang iseng yang kurang berdedikasi.

  • Memungkinkan untuk memeriksa pada waktu pendaftaran, menurunkan kemungkinan bahwa mereka bahkan akan mencapai tabel skor tinggi.

  • Bekerja dengan pemeriksaan manual.

  • Melihat ini sebagai masalah lama, seharusnya ada banyak sumber daya yang tersedia.

Mars
sumber