diff options
author | vulonkaaz <7442677+vulonkaaz@users.noreply.github.com> | 2025-05-28 20:44:40 +0200 |
---|---|---|
committer | vulonkaaz <7442677+vulonkaaz@users.noreply.github.com> | 2025-05-28 20:44:40 +0200 |
commit | c7f9c3edb05ab8dc1819c9686e7a6c4d60c1ba15 (patch) | |
tree | 366711d090bb8907ff688fca75ded27791852c84 /router/router.go | |
parent | 1cb6620e8b83946b8d6bc2fe2e7377c4ab09ae92 (diff) |
rate limiting
Diffstat (limited to 'router/router.go')
-rw-r--r-- | router/router.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/router/router.go b/router/router.go index c53cea4..7845b41 100644 --- a/router/router.go +++ b/router/router.go @@ -3,11 +3,22 @@ package router import ( "paperchan.club/controllers" "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/limiter" + "time" + "strings" ) func SetRoutes(app *fiber.App) { app.Get("/", controllers.ThreadList) app.Get("/thread/:id", controllers.Thread) - app.Post("/api/post", controllers.Publish) + app.Post("/api/post", rateLimiter, controllers.Publish) app.Delete("/api/post", controllers.Delete) } + +var rateLimiter = limiter.New(limiter.Config{ + Max: 5, + Expiration: 10*time.Minute, + KeyGenerator: func(c *fiber.Ctx) string { + return c.IP()+" "+strings.Join(c.IPs()," ") + }, +}) |