From ce75748cf25d05f795b0ec8c659824345c7f3868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Guillot?= Date: Mon, 18 Dec 2017 18:06:53 -0800 Subject: [PATCH] Use base64 URL encoding instead of standard encoding --- server/ui/controller/proxy.go | 2 +- server/ui/filter/image_proxy_filter.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/server/ui/controller/proxy.go b/server/ui/controller/proxy.go index b44eddc3..6d3f5188 100644 --- a/server/ui/controller/proxy.go +++ b/server/ui/controller/proxy.go @@ -30,7 +30,7 @@ func (c *Controller) ImageProxy(ctx *core.Context, request *core.Request, respon return } - decodedURL, err := base64.StdEncoding.DecodeString(encodedURL) + decodedURL, err := base64.URLEncoding.DecodeString(encodedURL) if err != nil { response.HTML().BadRequest(errors.New("Unable to decode this URL")) return diff --git a/server/ui/filter/image_proxy_filter.go b/server/ui/filter/image_proxy_filter.go index 1b200a43..12c9da63 100644 --- a/server/ui/filter/image_proxy_filter.go +++ b/server/ui/filter/image_proxy_filter.go @@ -36,5 +36,6 @@ func ImageProxyFilter(router *mux.Router, data string) string { // Proxify returns a proxified link. func Proxify(router *mux.Router, link string) string { - return route.Path(router, "proxy", "encodedURL", base64.StdEncoding.EncodeToString([]byte(link))) + // We use base64 url encoding to avoid slash in the URL. + return route.Path(router, "proxy", "encodedURL", base64.URLEncoding.EncodeToString([]byte(link))) }