ข้ามไปเนื้อหาหลัก

บั๊กคู่แฝดพังระบบจ่ายเงิน AI บน APEX Versus

ผู้พัฒนา APEX Versus เผยฟีเจอร์วิเคราะห์ AI พังสองเด้ง ผู้ใช้ฟรีเรียกใช้ได้ฟรีโดยไม่ต้องจ่ายเงิน ขณะที่ลูกค้า Pro กลับมองไม่เห็นปุ่มใช้งาน

เรียบเรียงโดย AI
Inewgen
04 Sep 2026ที่มา: Dev.to3 นาทีอ่าน (0 ครั้ง)
แชร์
บั๊กคู่แฝดพังระบบจ่ายเงิน AI บน APEX Versus

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • ฟีเจอร์ Deep Analysis บนเว็บไซต์ APEX Versus เกิดข้อผิดพลาดร้ายแรงสองจุดพร้อมกัน
  • ฝั่งเซิร์ฟเวอร์ไม่ได้ตรวจสอบการจ่ายเงิน ทำให้ผู้ใช้ทั่วไปเรียก API ได้ฟรีไม่มีอั้น
  • ลูกค้าแพ็กเกจ Pro ที่เสียเงินจริงกลับมองไม่เห็นปุ่มใช้งานเนื่องจากโค้ด UI ถูกซ่อนไว้
  • นักพัฒนาต้องแก้ไขระบบตรวจสอบสิทธิ์ฝั่งเซิร์ฟเวอร์และปรับปรุงการหักเครดิตให้ทำงานจริง

Param Jaisinghani ผู้พัฒนาเว็บไซต์เปรียบเทียบ AI อย่าง "APEX Versus" ได้ออกมาบอกเล่าประสบการณ์สุดช็อกหลังตรวจโค้ดครั้งใหญ่ เมื่อพบว่าฟีเจอร์วิเคราะห์เชิงลึกที่เรียกว่า "Deep Analysis" และ "Advanced Analysis" ซึ่งเป็นบริการแบบเสียเงิน กลับมีข้อผิดพลาดซ่อนอยู่ถึงสองจุดในเวลาเดียวกัน และความผิดพลาดทั้งสองฝั่งดันหักล้างกันเองจนระบบดูเหมือนปกติในตอนแรก

ปัญหาแรกคือระบบกำแพง paywall ไม่มีอยู่จริงบนฝั่งเซิร์ฟเวอร์ โดยหน้าเว็บไซต์ฝั่ง frontend มีการตรวจสอบเครดิตก่อนเรียกใช้งาน API ก็จริง แต่ตัว API หลักอย่าง POST /api/compare กลับไม่มีการตรวจสอบอะไรเลย ใครก็ตามที่ส่งคำขอพร้อมโหมด advanced ไปยังเซิร์ฟเวอร์โดยไม่ต้องมี auth header จะสามารถใช้งานโมเดล Gemini และรับผลลัพธ์กลับมาได้ทันที โดยไม่ต้องเข้าสู่ระบบ ไม่ต้องมีเครดิต และไม่มีการจำกัดโควต้าประจำวัน

ปัญหาที่สองกลับตรงกันข้ามอย่างสิ้นเชิง เพราะฟีเจอร์นี้ดันถูกซ่อนจากผู้ใช้งานที่ยอมควักกระเป๋าจ่ายเงินจริง โดยโค้ดแสดงผลระบุเงื่อนไขซ่อนการ์ดฟีเจอร์ดังกล่าวเมื่อผู้ใช้อยู่ในแพ็กเกจที่ต้องจ่ายเงิน ทำให้ปุ่ม "Advanced Analysis" ของสมาชิก Pro กลายเป็นโค้ดตายที่ไม่มีฟังก์ชันไหนเรียกใช้งานเลยตั้งแต่วันแรกที่เขียนขึ้นมา

เหตุการณ์นี้นับเป็นกรณีศึกษาชั้นดีในหมู่นักพัฒนาซอฟต์แวร์เกี่ยวกับความปลอดภัยของระบบ API และ Paywall โดยทั่วไป หากนักพัฒนาพึ่งพาการตรวจสอบสิทธิ์เพียงแค่ฝั่งไคลเอนต์ (Client-side) เช่น การซ่อนปุ่มหรือเช็กสถานะบนหน้าจอ ระบบจะมีความเปราะบางสูงมาก เพราะแฮกเกอร์หรือผู้ใช้ทั่วไปสามารถข้ามหน้า UI ไปยิง API ตรงๆ ได้เสมอ การตรวจสอบที่แท้จริงจึงต้องเกิดขึ้นที่ฝั่งเซิร์ฟเวอร์ (Server-side) เท่านั้น

สาเหตุรากเหง้าของเรื่องนี้มาจากการที่ผู้พัฒนาได้อัปเดตกฎความปลอดภัยของ Firestore ให้เครดิตสามารถถูกเขียนได้เฉพาะฝั่งเซิร์ฟเวอร์ผ่าน admin SDK เพื่อป้องกันการแฮกเครดิต แต่ลืมอัปเดตโค้ดเก่าที่พยายามเขียนเครดิตจากเบราว์เซอร์ ทำให้โค้ดพยายามทำงานอยู่เรื่อยๆ แต่ล้มเหลวแบบเงียบๆ ทุกครั้ง ส่งผลให้ระบบล่มแบบไม่แสดง Error ออกมาให้เห็น

software code editor screen programming dark mode

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

หลังจากค้นพบสาเหตุ การแก้ไขจึงทำได้โดยการเขียนโค้ดตรวจสอบสิทธิ์และระบบตัดเครดิตใหม่บนเซิร์ฟเวอร์ จากนั้นทดสอบจริงด้วยบัญชี Pro พบว่ายอดเครดิตลดลงไป 2 แต้มทันทีแบบอัตโนมัติ ซึ่งถือเป็นครั้งแรกในประวัติศาสตร์ของฟีเจอร์นี้ที่การหักเครดิตเกิดขึ้นจริงหลังใช้งาน

"การตรวจสอบฝั่งไคลเอนต์และฝั่งเซิร์ฟเวอร์ไม่ใช่ฟีเจอร์เดียวกัน เพียงเพราะมันมองหาตัวแปรตัวเดียวกัน อันหนึ่งเป็นแค่คำแนะนำ แต่อีกอันคือสิ่งเดียวที่ใช้งานได้จริง"

Param Jaisinghani

สุดท้ายนี้ ผู้พัฒนาได้ฝากข้อคิดเตือนใจสำหรับใครก็ตามที่กำลังทำระบบเครดิตหรือ Paywall ว่าควรตรวจสอบโค้ดทุกจุดที่มีการเช็กยอดคงเหลือ และลองจินตนาการดูว่าระบบนั้นจะรอดพ้นหรือไม่หากมีคนจงใจข้ามหน้าเว็บไปยิง API ตรงๆ หากคำตอบต้องขึ้นต้นด้วยคำว่า "ควรจะ" แปลว่าระบบนั้นยังไม่ได้ถูกบังคับใช้อย่างแท้จริง

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้