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 ได้นั่นเองครับ …