ฆ่าเชื้อตารางคะแนนสูงเพื่อลบคำ / ชื่อผู้ใช้ที่ไม่เหมาะสม


43

ฉันกำลังสร้างแอปสำหรับลูกค้าซึ่งพวกเขาขอให้มีตารางคะแนนสูงที่เปิดเผยต่อสาธารณะ มันจะแสดงชื่อผู้ใช้ซึ่งเป็นฟิลด์ข้อความอิสระที่ผู้เล่นสามารถป้อนได้ จำนวนผู้เล่นน่าจะต่ำมาก - ฉันคาดหวังมากที่สุด 10s หรือ 100s / วัน

ฟิลด์ชื่อผู้ใช้จะยาวกว่า 3 ตัวอักษร ชื่อจะเชื่อมโยงกับบัญชี Firebase Auth แต่สร้างขึ้นผ่านแอพไม่ได้ผูกติดกับอะไรอย่าง Google Play หรือบัญชี Facebook หรืออะไรทำนองนั้น ฉันคิดว่าพวกเขาจะทำได้ดีด้วยการลบชื่อที่ไม่เหมาะสม แต่พวกเขาจะไม่ได้ใช้ทรัพยากรจำนวนมากเพื่อรองรับการกลั่นกรองด้วยตนเอง

เมื่อตอนที่ฉันยังเด็กอยู่ 100% ของตารางคะแนนสูงของตู้อาร์เคดในพื้นที่ของฉันประกอบด้วยคำสาบานและคำที่ไม่เหมาะสม (หรือคำอื่น ๆ )

ฉันนึกภาพไม่ออกเลยว่าอินเทอร์เน็ตมีการปรับปรุงอะไรบ้าง

ฉันจะฆ่าชื่อผู้ใช้ให้ปลอดภัยเพื่อให้แสดงได้อย่างไร


10
ลูกค้าต้องการฆ่าชื่อผู้ใช้งานให้สะอาดหรือไม่? ถ้าไม่ใช่ก็ไม่ใช่ปัญหาของคุณ ณ ตอนนี้
MonkeyZeus

5
ความคิดแรก: - เตือนลูกค้าถึงอันตรายนี้ถามว่าพวกเขาต้องการใช้เงินในเวลาของคุณเพื่อจัดการกับมันหรือไม่ - ขอให้ลูกค้าแจ้งรายการคำที่ไม่ได้รับอนุญาตให้ลบออก - สุจริตนี่คือเขตที่วางทุ่นระเบิด ถามว่าพวกเขาต้องการให้เป็นสาธารณะหรือไม่
AJFaraday

4
ดูเพิ่มเติม: ปัญหา Scunthorp
Draco18s

4
ไม่เหมือนกันทุกประการ
Gary

3
อิโมติคอนอนุญาตหรือไม่ กระดานคะแนนจะแสดงผลอย่างไร? ฉันสามารถ ASCII วาด dong ได้หรือไม่เมื่อฉันพบวิธีป้อนคะแนนในกระดานคะแนนของคุณ ฉันขอใส่ Url เป็นชื่อ ("XYZ.com", "XYZ_Com", "XYZ_Dot_Com") ได้ไหม?
xdtTransform

คำตอบ:


73

ฉันแนะนำให้คุณปล่อยให้ลูกค้าทำเอง

จากมุมมองของค่าใช้จ่ายคุณมีโชคอยู่เคียงข้างคุณในเวลานี้:

  • คุณคาดว่าจะมีผู้ใช้ไม่เกิน 100 รายต่อวันซึ่งอาจต่ำถึง 10 วัน
  • คุณมีระบบการรับรองความถูกต้องหมายถึงเรย์แบนสามารถถาวร
  • คุณมีลูกค้าที่ยินดีที่จะลบชื่อ (นาน ๆ ครั้ง)

ในความเป็นจริงนั้นใช้เวลา 10 นาทีในการมองหาผู้นำอันดับต้น ๆ และห้ามใช้ชื่อที่รุนแรงใด ๆ - จะมีราคาถูกกว่าและเชื่อถือได้มากกว่าที่คุณใช้เวลาในการแก้ปัญหาทางวิศวกรรม (ซึ่งจะมีปัญหา)

ด้วยจำนวนผู้เล่นต่ำเช่นนี้ไม่น่าที่สิ่งนี้จะต้องทำบ่อยครั้งแม้แต่สัปดาห์ละครั้งในช่วงที่มียอดเขาก็น่าจะเพียงพอแล้ว


แต่ฉันมีเวลาเหลือเฟือฉันจะทำอะไรบางอย่างใช่มั้ย

ไม่ถูกต้อง.

คุณสามารถทำสิ่งผิดพลาดได้ง่ายซึ่งเป็นอันตรายต่อแบรนด์ของลูกค้ามากกว่าที่จะไม่ทำอะไรเลย

ต้องการใช้ Regex เพื่อตรวจจับชื่อที่ไม่ดีทั้งหมดหรือไม่ หวังว่าคุณจะได้รับมันอย่างสมบูรณ์แบบและยังกรองผลบวกเท็จทั้งหมดจากฐานข้อมูลหลาย ๆ ชื่อของชื่อจริงระหว่างประเทศ:

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

และแม้ว่าคุณจะจัดการกับข้างต้นได้สำเร็จผู้เล่นก็ไม่ได้โง่เง่าพวกเขาจะหาทางรอบ ๆ ระบบของคุณเพื่อสร้างชื่อที่น่ารังเกียจไม่แพ้กันที่คุณไม่ได้จับได้ง่าย

อย่างน้อยที่สุดคุณเพิ่งเพิ่มงานมากขึ้นในการรักษากฎเหล่านี้ให้ทันสมัยยิ่งขึ้นเมื่อเทียบกับงานเล็ก ๆ ด้วยตนเองเพียงแค่ดูคะแนนสูงสุดและแบน


ไม่ แต่อย่างจริงจังเกมนี้เป็นเกมสำหรับเด็ก - ไคลเอนต์ได้ระบุไว้อย่างชัดเจนว่าไม่มีความอดทนสำหรับชื่อที่น่ารังเกียจ จะต้องมีบางสิ่งบางอย่าง!

หากเป็นกรณีนี้โดยสุจริตและคุณไม่สามารถทนต่อชื่อที่น่ารังเกียจได้เลย ทางออกที่สมจริงเพียงอย่างเดียวคือไม่ให้ผู้เล่นของคุณสร้างชื่อของตัวเอง

นี่เป็นวิธีแก้ปัญหาที่คุณจะพบได้ในเว็บไซต์เกมสำหรับเด็กเกือบทั้งหมดเช่น Cartoon Network

แทนที่จะให้อินพุตว่างคุณให้เลือก "ส่วนชื่อ" ที่สร้างไว้ล่วงหน้า ตัวอย่างเช่น:

  • คำคุณศัพท์เช่น "ดีเลิศ", "วิเศษ", "ฉลาดแกมโกง"

  • ตรงกลางเช่น "Bearded", "Laser-eye", "Pirate"

  • คำนามเช่น "Master", "Winner", "Detector"

ซึ่ง จำกัด ชื่อที่แสดงสำหรับสิ่งต่าง ๆ เช่น "Awesome Pirate Master"

ให้พิจารณาอย่างรวดเร็วว่าคุณใช้ wordlist อะไร ไม่มีประโยชน์ที่จะนำระบบนี้ไปใช้หากผู้ใช้สามารถทำซอชื่อเพื่อรับสิ่งที่ยังคงฟังดูไม่เหมาะสมหรือสกปรก

แน่นอนว่ามีความเป็นไปได้ที่จะทำซ้ำเช่นกัน - แต่คุณสามารถเขียนสิ่งนี้ออก (3 รายการจาก 100 คำ, ให้ชื่อที่เป็นไปได้ 1 ล้านชื่อ) เนื่องจากมีผู้เล่นกี่คนที่คุณมีอยู่หรือถ้าจำเป็น - คุณยังสามารถตรวจสอบว่า ไม่มีใครมีชื่อในการลงทะเบียน

ในความเป็นจริงนี่อาจเป็นทางออกที่มีประสิทธิภาพมากที่สุดหากคุณกังวลเรื่องชื่อไม่ดี แต่คุณต้องทำการวิเคราะห์ค่าใช้จ่ายและค้นหาว่าการทำให้ระบบนี้มีความคุ้มค่าหรือไม่เมื่อเปรียบเทียบกับการตรวจสอบด้วยตนเองอย่างง่าย ๆ


25
ฉันชอบคำตอบนี้เพราะ "อย่าทำอะไรอัตโนมัติจนกว่าคุณจะรู้ปัญหามากขึ้น" เป็นสิ่งที่ถูกต้องในประสบการณ์ของฉัน
NeilD

5
เตือนให้ฉันนึกถึงจักรวาล Lego และการตรวจหาองคชาต
n0rd

7
เด็กอายุ 4 ขวบเข้าถึงเกมคอนโซลของฉันซึ่งคุณสามารถสร้างตัวละครได้ ช่องบันทึกนั้นเต็มไปด้วย poo, bum, pee, etc. ฯลฯ เด็ก ๆ ทำสิ่งนี้และหัวเราะมาก ...
Nelson

36
ไม่ประมาทความสามารถของเด็กที่จะทำให้ประโยคหยาบคายจากชิ้นส่วนที่คาดคะเนการทำความสะอาด
ทำเครื่องหมาย

4
"แต่ไม่จริงจังนี่เป็นเกมสำหรับเด็ก" คุณเคยได้ยินเกี่ยวกับ Lego Universe หรือไม่? แม้แต่เลโก้ก็ไม่สามารถสร้างเครื่องตรวจจับอวัยวะเพศชายได้ ส่วนชื่อ: "นักภาษาศาสตร์เจ้าเล่ห์โจรสลัด"
Draco18s

7

ฐานผู้ใช้ขนาดเล็กอาจไม่เพียงพอที่จะเบี่ยงเบนความสะดวกในการนำบัญชีดำไปใช้งาน มีห้องสมุดและ / หรือรายการคำมากมายเช่นที่อ้างถึงที่นี่ซึ่งช่วยให้คุณสามารถตรวจสอบชื่อผู้ใช้กับสิ่งที่คุณเห็นว่าไม่เหมาะสม

หากคุณตัดสินใจที่จะลองรายการของคุณเองคุณอาจต้องการใช้regexเพื่อกรองชื่อ

ดังที่Bilkokuyaชี้ให้เห็นอาจมีปัญหากับชื่อที่ถูกกฎหมายที่ถูกขึ้นบัญชีดำ นั่นคือการตัดสินใจทางธุรกิจสำหรับลูกค้าของคุณที่จะทำแต่สิ่งหนึ่งที่คุณสามารถ / ควรทำให้พวกเขาตระหนักถึง ฉันไม่ทราบวิธีใดที่จะหลีกเลี่ยงแง่มุมทางวัฒนธรรมยกเว้นว่าหากคุณคาดหวังผู้ใช้จำนวนมากจากวัฒนธรรมที่อาจเป็นปัญหาคุณอาจต้องการใช้การกรองเฉพาะภูมิภาค

เหตุผลในการใช้รูปแบบการกรองบางอย่าง (นอกเหนือจากการตรวจสอบด้วยตนเอง):

  • ใช้งานง่าย อาจจะไม่ใช้เวลานานกว่าหนึ่งชั่วโมงเพื่อให้ได้สิ่งที่จะไป

  • ตัวยับยั้งการเล่นพิเรนต์ที่อุทิศตนน้อย

  • ช่วยให้การตรวจสอบในเวลาลงทะเบียนลดโอกาสที่จะถึงตารางคะแนนสูง

  • ทำงานร่วมกับการตรวจสอบด้วยตนเอง

  • การเห็นว่าเป็นปัญหาเก่าควรมีแหล่งข้อมูลมากมาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.