Răsfoiți Sursa

fix(csrf): apply CSRF to all non-safe methods

Better safe than sorry
jvoisin 1 săptămână în urmă
părinte
comite
08de9546e3
1 a modificat fișierele cu 7 adăugiri și 2 ștergeri
  1. 7 2
      internal/ui/csrf_middleware.go

+ 7 - 2
internal/ui/csrf_middleware.go

@@ -26,8 +26,13 @@ func newCSRFMiddleware(basePath string) *csrfMiddleware {
 // in the request context.
 func (m *csrfMiddleware) handle(next http.Handler) http.Handler {
 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-		if r.Method == http.MethodPost && !m.validate(w, r) {
-			return
+		switch r.Method {
+		case http.MethodGet, http.MethodHead, http.MethodOptions:
+			// Safe methods don't require CSRF validation.
+		default:
+			if !m.validate(w, r) {
+				return
+			}
 		}
 		next.ServeHTTP(w, r)
 	})