package middleware import ( "strings" "github.com/gin-gonic/gin" ) // IsHTTPSRequest 报告客户端是否通过 TLS 访问到我们。当应用部署在反向代理 // (Caddy/nginx)之后,应用本身通常使用明文连接,因此还需参考 // X-Forwarded-Proto 请求头。仅当请求由可信代理转发时才采信该头部—— // 不受信任的客户端伪造它,最坏情况下只会破坏自己的会话(Cookie 变为 // Secure,在明文 HTTP 下会被拒收)。 func IsHTTPSRequest(c *gin.Context) bool { if c.Request.TLS != nil { return true } if strings.EqualFold(c.GetHeader("X-Forwarded-Proto"), "https") { return true } return false }