กดบัตรคอนไม่ได้ แถมโดน “กาน้ำชา” ปฏิเสธ — เรื่องวุ่น ๆ ของ Error 418 ที่ไม่ใช่ฝีมือแฮกเกอร์จีน
ว่าด้วยดราม่ากดบัตร BTS วันที่ 12 มิถุนาที่ผ่านมา — ที่จุดเริ่มต้นคือ error ขี้เล่นตัวหนึ่ง แต่จุดจบเกือบถึงสคบ.
แต่บทเรียนที่ซ่อนอยู่เบื้องหลังนั้นสำคัญมาก
วันที่ 12 มิถุนาที่ผ่านมา ใครที่นั่งลุ้นกดบัตรคอนเสิร์ต #BTS_WORLDTOUR_BANGKOK คงได้เห็นดราม่าร้อน ๆ บนแอป X กันสด ๆ มีผู้ใช้รายหนึ่งกดบัตรไม่ได้ หน้าจอเด้ง error ขึ้นมาเป็นเลข 418 พร้อมข้อความว่า request ของคุณ “ดูเหมือนการโจมตี” พอลองเปิด inspect ดูในซอร์สโค้ดก็เจอข้อความภาษาจีนว่า “访问被拦截!” — การเข้าถึงถูกปิดกั้น
เท่านั้นแหละค่ะ จากพฤติกรรมที่เห็นก็พอเดาได้ว่าเจ้าตัวไม่ได้คลุกคลีกับสายไอทีนัก เพราะสรุปออกมาว่า “โดนโปรแกรมเมอร์จีนบล็อกไม่ให้คนไทยกดบัตร” แล้วเรื่องก็ลุกลาม มีคนต่อยอดไปอีกว่าเลข 418 คือหลักฐานว่า “โดนคนจีนแฮก” จนถึงขั้นมีคนประกาศจะไปฟ้องสคบ. กันเลยทีเดียว
ก่อนจะไปถึงศาล ขอชวนมาแกะทีละประเด็นก่อน เพราะเรื่องนี้สนุกกว่าที่คิด และจบลงด้วยบทเรียนที่ทุกทีมพัฒนาระบบควรรู้
01Error 418 คืออะไร? ทำไมมันถึงตลก
นี่อาจเป็น error ที่น่ารักที่สุดในประวัติศาสตร์อินเทอร์เน็ต เพราะ 418 ไม่ได้แปลว่าโดนแฮก ไม่ได้แปลว่าระบบพัง แต่แปลว่า “I’m a teapot” — ฉันเป็นกาน้ำชา
เรื่องมันเริ่มจากวันที่ 1 เมษายน 1998 หรือวัน April Fools’ Day ที่เหล่าวิศวกรอินเทอร์เน็ตออกเอกสารมาตรฐานปลอม ๆ ฉบับหนึ่ง เขียนเป็นตุเป็นตะถึงโปรโตคอลชื่อ HTCPCP (Hyper Text Coffee Pot Control Protocol) — โปรโตคอลสำหรับ “สั่งชงกาแฟผ่านอินเทอร์เน็ต” ในเอกสารระบุไว้อย่างจริงจังว่า ถ้าคุณส่งคำสั่งชงกาแฟไปยังอุปกรณ์ที่เป็น กาต้มชา มันต้องตอบกลับด้วยรหัส 418 เพื่อบอกว่า “ชงกาแฟให้ไม่ได้หรอก เพราะฉันเป็นกาน้ำชา (I’m a teapot.)”
ใช่ค่ะ ทั้งหมดนี้คือมุกตลกวันเมษาหน้าโง่ แต่ชาวอินเทอร์เน็ตดันรักมุกนี้มาก ถึงขนาดที่เมื่อมีความพยายามจะถอด 418 ออกจากมาตรฐานในภายหลัง ก็เกิดแคมเปญ “Save 418” ขึ้นมาปกป้องจนสำเร็จ ทุกวันนี้ 418 เลยยังมีชีวิตอยู่ในฐานะ easter egg ที่นักพัฒนาทั่วโลกหยิบมาใช้
แล้วภาษาจีนใน inspect มาจากไหน? คำตอบอยู่ในรูปที่แชร์กันนั่นเองค่ะ — ใน source ระบุชัดว่า Server คือ CloudWAF ซึ่งเป็นบริการ Web Application Firewall ของ Huawei Cloud และ WAF ตัวนี้ถูกออกแบบมาให้ตอบ request ที่มันมองว่าน่าสงสัยด้วยรหัส 418 พร้อมหน้า error ภาษาจีนสำเร็จรูป ตามเอกสารทางการของ Huawei เลยค่ะ ไม่ใช่โปรแกรมเมอร์จีนคนไหนมานั่งบล็อกคนไทยแบบ manual แน่นอน
“คนที่กดบัตรไม่ได้วันนั้น ไม่ได้โดนแฮกค่ะ — แค่โดนกาน้ำชาปฏิเสธ”
02แล้วทำไมถึงกดบัตรไม่ได้ล่ะ?
อันนี้คือประเด็นที่เป็นเรื่องเทคนิคจริง ๆ และเจ็บปวดกว่ามุกกาน้ำชาเยอะ
ISP ในไทยจำนวนมากใช้เทคนิคแชร์ IP — ผู้ใช้หลายร้อยหลายพันคนออกอินเทอร์เน็ตผ่าน IP สาธารณะ เบอร์เดียวกัน ในวันปกติไม่มีใครรู้สึกอะไร แต่ลองนึกภาพวันกดบัตรคอนดูนะคะ แฟนคลับนับพันที่ใช้เน็ตเจ้าเดียวกัน กดปุ่มเดียวกัน ในวินาทีเดียวกัน
ในสายตาของ WAF ภาพที่เห็นคือ request มหาศาลพุ่งมาจาก IP เดียวพร้อมกัน ซึ่งหน้าตาเหมือนการโจมตีแบบ DDoS เป๊ะ ๆ ระบบเลยทำหน้าที่ของมันอย่างซื่อสัตย์ คือบล็อกทิ้งทั้ง IP ผลคือคนบริสุทธิ์ที่แค่อยากเจอศิลปินโดนบล็อกกันยกยวง ไม่ใช่เพราะใครกลั่นแกล้ง แต่เพราะระบบป้องกันแยกไม่ออกว่านี่คือแฟนคลับหรือบอท
03เรื่องแบบนี้ป้องกันได้ไหม?
ได้ค่ะ และนี่คือเหตุผลที่การทดสอบระบบก่อนวันจริงไม่ใช่แค่การยิง load ใส่เซิร์ฟเวอร์เฉย ๆ
แล้วจะได้ปรับจูนกันก่อน เช่น:
- ผ่อนเกณฑ์ rate limit ต่อ IP เปลี่ยนไปนับที่ session หรือ device แทน
- หรือเตรียมหน้ารอคิวที่รับแรงกระแทกแทนการบล็อกดื้อ ๆ
เพราะปัญหาแบบนี้ไม่มีทางเจอจากการเปิดเว็บทดสอบกันเองในออฟฟิศ มันจะโผล่มาเฉพาะตอนที่คนเป็นหมื่นแห่เข้ามาพร้อมกันเท่านั้น และอย่างที่รู้กัน — มันจะพังตรงจุดที่ส่งผลกระทบมากที่สุดเสมอ
“ระหว่างเจอปัญหาตอนซ้อม กับเจอปัญหาตอนแฟนคลับทั้งประเทศกดบัตรพร้อมกัน อย่างแรกคือบทเรียน อย่างหลังคือดราม่าบน X”
04ทิ้งท้าย
ดราม่าครั้งนี้ไม่มีแฮกเกอร์จีน ไม่มีแผนการร้าย มีแค่ระบบที่ไม่ได้ถูกซ้อมรับมือ traffic แบบไทย ๆ กับ error ขี้เล่นตัวหนึ่งที่ดันไปโผล่ผิดที่ผิดเวลา
ก็อยากฝากถึงทุกทีมที่ดูแลระบบขายบัตรไว้ว่า ลงทุนกับ Load Test สักหน่อยก่อนวันจริง แล้ววันเปิดขายคุณจะได้นั่งจิบชาดูกราฟอย่างสบายใจ
ดีกว่าปล่อยให้ระบบของคุณเป็นฝ่ายตอบลูกค้าว่า “ขอโทษนะคะ ฉันเป็นแค่กาน้ำชา” 🫖


