From 88ab11965bc28fecdabc2d4882e0df9e2fdc705a Mon Sep 17 00:00:00 2001 From: Kr328 Date: Tue, 29 Nov 2022 21:25:15 +0800 Subject: [PATCH] Fix: should unescape url param --- main.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 56dacfe..33eca08 100644 --- a/main.go +++ b/main.go @@ -2,12 +2,12 @@ package main import ( "bytes" - _ "embed" "encoding/json" "flag" "io/fs" "net" "net/http" + "net/url" "os" "os/signal" "path/filepath" @@ -25,9 +25,6 @@ var ( servePath = flag.String("p", ".", "Local server root path") ) -//go:embed userscript.js -var userscript []byte - func main() { flag.Parse() @@ -100,7 +97,12 @@ func main() { _, _ = writer.Write(bytes.ReplaceAll(userscript, []byte("%%%SERVER_URL%%%"), []byte("http://"+*listenAt))) }) r.HandleFunc("/{fileName}", func(writer http.ResponseWriter, request *http.Request) { - fileName := chi.URLParam(request, "fileName") + fileName, err := url.QueryUnescape(chi.URLParam(request, "fileName")) + if err != nil { + writer.WriteHeader(http.StatusBadRequest) + + return + } if strings.Contains(fileName, "/") { writer.WriteHeader(http.StatusBadRequest)