Code4Sec error handling in gofiber

ryudokung
Jan 12, 2021

--

code4sec วันนี้เราจะมาใช้ gofiber กัน แต่จะใช้ในส่วนที่ manage error ของ webserver

โดยตัวอย่าง code ก็จะให้เข้าไปที่ localhost ที่ port 3000 และ import recover package มา เพื่อ handle panic หรือ error หาก server มีปัญหา

เรียกใช้งาน fiber และ recover

app := fiber.New()
app.Use(recover.New())

ทำการ get / url เพื่อ panic error ที่ default path

app.Get(“/”, func(c *fiber.Ctx) error {
panic(“This panic is catched by fiber”)
})

หาก compile ก็จะได้หน้าตาแบบนี้

เราลองมาเปลี่ยน เป็น default error กัน โดยเปลี่ยนในส่วนของ

panic(“This panic is catched by fiber”)

เป็น

return fiber.ErrServiceUnavailable

ก็จะได้หน้าตาแบบนี้

app.Get(“/”, func(c *fiber.Ctx) error {
return fiber.ErrServiceUnavailable
})

ลอง compile ก็จะได้ Service Unavailable

เรียบร้อย… โดยถ้าถามว่าทำไมเราต้องให้ความสำคัญกับ error มาก ก็จะเล่าไปถึง การที่ hacker รู้ถึง สิ่งที่ นักพัฒนาใช้ในการ implement ระบบขึ้นมาโดยหาจุดอ่อนและ hacker พยายามใส่ input บางอย่างเพื่อให้ระบบ พ่น error message ที่สำคัญๆ โดยหากพัฒนาไม่ดีระบบก็อาจจะพ่น username หรือ password ของระบบ ให้กับเหล่า hacker ได้นั่นเองครับ …

--

--