This library provides a middleware function for handling CSRF protection in Go HTTP servers. It generates a CSRF token and sets it as a cookie in the response, and checks for a valid CSRF token in the request body or X-CSRF-Token header. Installation
To install the library, use the go get command:
go get github.com/mail4metablocks/csrf-protection-middleware-go
To use the CSRF middleware, wrap your application's routes in the CSRFMiddleware function:
package main
import (
"net/http"
"github.com/mail4metablocks/csrf-protection-middleware-go"
)
func main() {
http.Handle("/", csrf.CSRFMiddleware(http.HandlerFunc(handleIndex)))
http.Handle("/login", csrf.CSRFMiddleware(http.HandlerFunc(handleLogin)))
http.ListenAndServe(":8080", nil)
}
To include the CSRF token in your forms, use a hidden field with the name csrf_token:
<form method="post">
<input type="hidden" name="csrf_token" value="{{csrf_token}}">
<!-- form fields -->
</form>