mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2026-05-25 12:37:46 +03:00
lib/httpserver: add flags to specify HSTS / Frame-Options / CSP headers for httpserver (#5111)
support `Strict-Transport-Security`, `Content-Security-Policy` and `X-Frame-Options` HTTP headers in all VictoriaMetrics components. The values for headers can be specified by users via the following flags: `-http.header.hsts`, `-http.header.csp` and `-http.header.frameOptions`. Co-authored-by: hagen1778 <roman@victoriametrics.com>
This commit is contained in:
@@ -51,6 +51,10 @@ var (
|
||||
shutdownDelay = flag.Duration("http.shutdownDelay", 0, `Optional delay before http server shutdown. During this delay, the server returns non-OK responses from /health page, so load balancers can route new requests to other servers`)
|
||||
idleConnTimeout = flag.Duration("http.idleConnTimeout", time.Minute, "Timeout for incoming idle http connections")
|
||||
connTimeout = flag.Duration("http.connTimeout", 2*time.Minute, `Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem`)
|
||||
|
||||
headerHSTS = flag.String("http.header.hsts", "", "Value for 'Strict-Transport-Security' header")
|
||||
headerFrameOptions = flag.String("http.header.frameOptions", "", "Value for 'X-Frame-Options' header")
|
||||
headerCSP = flag.String("http.header.csp", "", "Value for 'Content-Security-Policy' header")
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -238,6 +242,15 @@ func handlerWrapper(s *server, w http.ResponseWriter, r *http.Request, rh Reques
|
||||
}
|
||||
}()
|
||||
|
||||
if *headerHSTS != "" {
|
||||
w.Header().Add("Strict-Transport-Security", *headerHSTS)
|
||||
}
|
||||
if *headerFrameOptions != "" {
|
||||
w.Header().Add("X-Frame-Options", *headerFrameOptions)
|
||||
}
|
||||
if *headerCSP != "" {
|
||||
w.Header().Add("Content-Security-Policy", *headerCSP)
|
||||
}
|
||||
w.Header().Add("X-Server-Hostname", hostname)
|
||||
requestsTotal.Inc()
|
||||
if whetherToCloseConn(r) {
|
||||
|
||||
Reference in New Issue
Block a user