fix(middleware): log rejected CSRF requests with the trusted client address (#6692)

A panel or API request rejected for a missing or wrong CSRF token got a bare
403 and left nothing in the log, so an operator chasing failed logins from a
stale tab or a script had no trace. CSRFMiddleware now logs a warning with the
method, path and client address. The address comes from getRemoteIp, which
honours the trusted-proxy list, instead of gin's ClientIP, which trusts any
peer's X-Forwarded-For.
This commit is contained in:
ericanannn-blip
2026-10-24 10:51:21 +08:00
committed by GitHub
parent 864cbd234a
commit 3051aebb28
6 changed files with 53 additions and 12 deletions
+1 -1
View File
@@ -198,7 +198,7 @@ func (a *APIController) initRouter(g *gin.RouterGroup) {
// Decode + verify the node config envelope (zstd + X-Config-Sha256) and
// advertise support, before CSRF/handlers read the body.
api.Use(middleware.ConfigEnvelopeMiddleware())
api.Use(middleware.CSRFMiddleware())
api.Use(middleware.CSRFMiddleware(getRemoteIp))
api.GET("/openapi.json", ServeOpenAPISpec)