diff --git a/internal/web/server/middlewares.go b/internal/web/server/middlewares.go index 8f79b02..ab26eca 100644 --- a/internal/web/server/middlewares.go +++ b/internal/web/server/middlewares.go @@ -72,7 +72,7 @@ func (s *Server) registerMiddlewares() { /* skip CSRF for git clients */ matchUploadPack, _ := regexp.MatchString("(.*?)/git-upload-pack$", ctx.Request().URL.Path) matchReceivePack, _ := regexp.MatchString("(.*?)/git-receive-pack$", ctx.Request().URL.Path) - return filepath.Ext(gistName) == ".js" || matchUploadPack || matchReceivePack + return (filepath.Ext(gistName) == ".js" && ctx.Request().Method == "GET") || matchUploadPack || matchReceivePack }, ErrorHandler: func(err error, c echo.Context) error { log.Info().Err(err).Msg("CSRF error") @@ -320,7 +320,6 @@ func csrfInit(next Handler) Handler { csrf = csrfToken } ctx.SetData("csrfHtml", template.HTML(``)) - ctx.SetData("csrfHtml", template.HTML(``)) return next(ctx) }