This repository has been archived on 2025-08-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
web-app-template/handler/middleware/cross_site_request_forgery.go
Tim Wundenberg 8aeb284d30
Some checks failed
Build Docker Image / Build-Docker-Image (push) Failing after 37s
tbs
2024-12-04 23:36:54 +01:00

22 lines
534 B
Go

package middleware
import "net/http"
func CrossSiteRequestForgery() func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Method == "POST" {
// Check the CSRF token
csrfToken := r.Header.Get("X-CSRF-Token")
sessionToken := r.Header.Get("X-Session-Token")
if csrfToken != sessionToken {
http.Error(w, "CSRF token mismatch", http.StatusForbidden)
return
}
}
next.ServeHTTP(w, r)
})
}
}