เรื่องแบบนี้อย่าให้มีอีกเป็นครั้งที่สอง

เมื่อวันที่ 12 กันยายน 2025 Cloudflare เจอเรื่องชวนปวดหัวแบบไม่ทันตั้งตัว เพราะระบบแดชบอร์ดและ API ของตัวเองดันล่มไปกว่าชั่วโมง สาเหตุไม่ได้มาจากการถูกโจมตีภายนอก แต่เป็นบักที่ทีม dev เขียนพลาดเองล้วน ๆ

.

ปัญหามาจากการใช้ React hook (useEffect) ผิดวิธี ปกติ useEffect จะทำงานเมื่อเงื่อนไขที่ระบุไว้มีการเปลี่ยนแปลง แต่ทีมดันไปใส่ตัวแปรที่เปลี่ยนตลอดเวลาเข้าไปใน dependency array ส่งผลให้ฟังก์ชันถูกเรียกซ้ำไม่หยุด ทุกครั้งที่หน้าแดชบอร์ดเรนเดอร์ก็เหมือนยิง API รัว ๆ ใส่ Tenant Service API ทั้งที่ควรจะทำงานแค่ครั้งเดียวต่อการโหลดหน้า สุดท้าย API รับโหลดไม่ไหว ลามไปกระทบระบบตรวจสอบสิทธิ์และทำให้ API อื่น ๆ พากันล่มตามไป

.

ช่วงแรกทีมงานพยายามแก้ด้วยการเพิ่ม resource ให้ Tenant API แต่ไม่ช่วย เพราะ request ยังถาโถมเข้ามาเรื่อย ๆ แถมยังไป revert โค้ดผิดจุดอีก จนท้ายที่สุดต้องงัด global rate limit มาลดโหลดทั้งระบบ ถึงจะกู้สถานการณ์กลับมาได้

.

Tom Lianza รองประธานฝ่ายวิศวกรรมของ Cloudflare ยอมรับว่านี่เป็นตัวอย่างคลาสสิกของการใช้ useEffect โดยไม่ระวัง ทั้งที่เอกสาร React เองก็เตือนเรื่องนี้ไว้ชัดเจน เหตุการณ์ครั้งนี้เลยกลายเป็นบทเรียนราคาแพง และยังตอกย้ำด้วยว่า ต่อให้เป็นบริษัทที่ขึ้นชื่อด้านป้องกัน DDoS ระดับโลก ก็ยังพลาดเจอ DDoS ตัวเองได้อยู่ดี

.

ที่มา : theregister

#ข่าวไอที #รวมเรื่องไอที #ไอที่น่ารู้ #ไอที

2025/9/30 แก้ไขเป็น

... อ่านเพิ่มเติมเหตุการณ์ที่ Cloudflare ประสบพบปัญหาระบบล่มครั้งใหญ่จากบั๊กการเขียนโค้ด useEffect ของ React เป็นตัวอย่างที่ชัดเจนว่าการดูแลและทดสอบโค้ดอย่างระมัดระวังเป็นสิ่งสำคัญมากในวงการเทคโนโลยีสมัยใหม่ ในเชิงเทคนิคแล้ว useEffect เป็น hook สำคัญที่ช่วยให้สามารถจัดการผลกระทบ (side effects) ในแอปพลิเคชัน React ได้ เช่น การเรียกข้อมูลจาก API หรือการตั้งค่าบางอย่าง เมื่อใช้ผิดวิธี เช่น ใส่ dependency ที่เปลี่ยนแปลงบ่อย ๆ ลงใน dependency array ฟังก์ชันจะถูกเรียกซ้ำไม่หยุด ทำให้ระบบถูกยิง request อย่างไม่หยุดยั้ง เหมือนเกิด API flood attack ภายในระบบเอง ซึ่งครั้งนี้เรียกว่าเป็น DDoS attack ที่มาจากภายใน (self-inflicted DDoS) สำหรับผู้พัฒนาระบบ การเข้าใจอย่างลึกซึ้งเกี่ยวกับการทำงานของ hook แต่ละตัวรวมถึง lifecycle ของ React component เป็นเรื่องจำเป็น เพื่อหลีกเลี่ยงปัญหาการทำงานซ้ำซ้อน นอกจากนี้ การใช้เครื่องมือ monitoring และ rate limiting อย่างเหมาะสมก็เป็นแนวทางที่ช่วยลดความเสี่ยงที่ระบบจะถูกโจมตี หรือ overloaded โดย request ใด ๆ จากกรณีนี้ เห็นได้ชัดว่าบริษัทที่มีชื่อเสียงด้านความปลอดภัยและป้องกัน DDoS อย่าง Cloudflare ยังไม่อาจรอดพ้นจากข้อผิดพลาดที่เกิดจากทีมพัฒนาของตนเอง ซึ่งเป็นบทเรียนสำคัญที่องค์กรอื่น ๆ ต้องให้ความสำคัญกับการทดสอบโค้ด (code review) และการศึกษาเอกสารทางเทคนิคอย่างเคร่งครัด สุดท้าย ปัญหา API ล่มครั้งนี้ยังชี้ให้เห็นถึงความสำคัญของ global rate limit ที่เป็นเหมือนเกราะป้องกันขั้นสุดท้าย ซึ่งช่วยลดโหลดระบบและฟื้นฟูสถานการณ์ให้กลับสู่สถานะปกติเร็วขึ้นผู้พัฒนาจึงควรวางแผนมาตรการเหล่านี้ควบคู่ไปกับการพัฒนาระบบ เพื่อป้องกันเหตุการณ์ซ้ำรอยและรักษาเสถียรภาพของบริการให้ดีที่สุด