diff options
author | 2018-04-29 16:35:04 -0700 | |
---|---|---|
committer | 2018-04-29 16:35:04 -0700 | |
commit | f49b42f70f902d4da1e0fa4080e99164b331b716 (patch) | |
tree | c6bdd19f11d100c44b0d30344ec37038f649e988 /middleware/common_headers.go | |
parent | 1eba1730d1af50ed545f4fde78b22d6fb62ca11e (diff) | |
download | v2-f49b42f70f902d4da1e0fa4080e99164b331b716.tar.gz v2-f49b42f70f902d4da1e0fa4080e99164b331b716.tar.zst v2-f49b42f70f902d4da1e0fa4080e99164b331b716.zip |
Use vanilla HTTP handlers (refactoring)
Diffstat (limited to 'middleware/common_headers.go')
-rw-r--r-- | middleware/common_headers.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/middleware/common_headers.go b/middleware/common_headers.go new file mode 100644 index 00000000..bdec580c --- /dev/null +++ b/middleware/common_headers.go @@ -0,0 +1,25 @@ +// Copyright 2018 Frédéric Guillot. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package middleware + +import ( + "net/http" +) + +// CommonHeaders sends common HTTP headers. +func (m *Middleware) CommonHeaders(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("X-XSS-Protection", "1; mode=block") + w.Header().Set("X-Content-Type-Options", "nosniff") + w.Header().Set("X-Frame-Options", "DENY") + w.Header().Set("Content-Security-Policy", "default-src 'self'; img-src *; media-src *; frame-src *; child-src *") + + if m.cfg.IsHTTPS && m.cfg.HasHSTS() { + w.Header().Set("Strict-Transport-Security", "max-age=31536000") + } + + next.ServeHTTP(w, r) + }) +} |