Add username validation and URL decoding in comment retrieval

This commit is contained in:
2025-05-21 12:44:29 +08:00
parent 3283aabf9f
commit 0fae66c7dd
2 changed files with 12 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
package api package api
import ( import (
"net/url"
"nysoure/server/model" "nysoure/server/model"
"nysoure/server/service" "nysoure/server/service"
"strconv" "strconv"
@@ -65,6 +66,13 @@ func listComments(c fiber.Ctx) error {
func listCommentsWithUser(c fiber.Ctx) error { func listCommentsWithUser(c fiber.Ctx) error {
username := c.Params("username") username := c.Params("username")
if username == "" {
return model.NewRequestError("Username is required")
}
username, err := url.PathUnescape(username)
if err != nil {
return model.NewRequestError("Invalid username")
}
pageStr := c.Query("page", "1") pageStr := c.Query("page", "1")
page, err := strconv.Atoi(pageStr) page, err := strconv.Atoi(pageStr)
if err != nil { if err != nil {

View File

@@ -179,6 +179,10 @@ func handleGetResourcesWithUser(c fiber.Ctx) error {
if username == "" { if username == "" {
return model.NewRequestError("Username is required") return model.NewRequestError("Username is required")
} }
username, err := url.PathUnescape(username)
if err != nil {
return model.NewRequestError("Invalid username")
}
pageStr := c.Query("page") pageStr := c.Query("page")
if pageStr == "" { if pageStr == "" {
pageStr = "1" pageStr = "1"