Documentation
¶
Index ¶
Constants ¶
View Source
const ( YearDuration = 365 * 24 * 60 * 60 // EmbedderDefault default value will be "require-corp" EmbedderRequireCorp Embedder = "require-corp" EmbedderCredentialLess Embedder = "credentialless" EmbedderUnsafeNone Embedder = "unsafe-none" // OpenerDefault default value will be "same-origin" OpenerSameOrigin Opener = "same-origin" OpenerSameOriginAllowPopups Opener = "same-origin-allow-popups" OpenerUnsafeNone Opener = "unsafe-none" // ResourceDefault default value will be "same-origin" ResourceSameOrigin Resource = "same-origin" ResourceSameSite Resource = "same-site" ResourceCrossOrigin Resource = "cross-origin" NoReferrer Referrer = "no-referrer" NoReferrerWhenDowngrade Referrer = "no-referrer-when-downgrade" SameOrigin Referrer = "same-origin" Origin Referrer = "origin" StrictOrigin Referrer = "strict-origin" OriginWhenCrossOrigin Referrer = "origin-when-cross-origin" StrictOriginWhenCrossOrigin Referrer = "strict-origin-when-cross-origin" UnsafeUrl Referrer = "unsafe-url" // CDPDefault default value is "none" CDPNone CDP = "none" CDPMasterOnly CDP = "master-only" CDPByContentType CDP = "by-content-type" CDPAll CDP = "all" // XFrameDefault default value will be "sameorigin" XFrameSameOrigin XFrame = "sameorigin" XFrameDeny XFrame = "deny" )
Variables ¶
This section is empty.
Functions ¶
func CORS ¶
func CORS(opts CORSOption) func(http.Handler) http.Handler
CORS provides Cross-Origin Resource Sharing middleware. Example:
import ( "net/http" "gitserver.in/patialtech/mux/middleware" "gitserver.in/patialtech/mux" ) func main() { r := mux.NewRouter() r.Use(middleware.CORS(middleware.CORSOption{ AllowedOrigins: []string{"*"}, MaxAge: 60, })) r.Get("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello there")) }) r.Serve(func(srv *http.Server) error { srv.Addr = ":3001" slog.Info("listening on http://localhost" + srv.Addr) return srv.ListenAndServe() }) }
Types ¶
type CORSOption ¶
type CORSOption struct { // AllowedOrigins list, including "*" will allow all AllowedOrigins []string // AllowedHeaders are a list of headers clients are allowed to use with. // default: []string{"Accept", "Accept-Language", "Content-Language", "Origin"} AllowedHeaders []string // AllowedMethods are a list of methods clients are allowed to use. // // default: []string{"HEAD", "GET", "POST"} AllowedMethods []string ExposedHeaders []string // MaxAge in seconds, max allowed value is 600 MaxAge uint AllowCredentials bool }
CORSOption represents a functional option for configuring the CORS middleware.
type CSP ¶
type CSP struct { // default-src, default value will be 'self' DefaultSrc []string // script-src, default value will be 'self' ScriptSrc []string // script-src-attr, default value will be 'none' ScriptSrcAttr []string // style-src, default value will be 'self' https: 'unsafe-inline' StyleSrc []string // img-src, default value will be 'self' data: ImgSrc []string // object-src, default value will be 'none' ObjectSrc []string // base-uri, default value will be 'self' BaseUri []string // font-src, default value will be 'self' https: data: FontSrc []string // form-action, default value will be 'self' FormAction []string // frame-ancestors, default value will be 'self' FrameAncestors []string UpgradeInsecureRequests bool }
CSP is Content-Security-Policy settings
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources
type HelmetOption ¶
type HelmetOption struct { ContentSecurityPolicy CSP StrictTransportSecurity *TransportSecurity // "require-corp" will be the default policy CrossOriginEmbedderPolicy Embedder // "same-origin" will be the default policy CrossOriginOpenerPolicy Opener // "same-origin" will be the default policy CrossOriginResourcePolicy Resource // "no-referrer" will be the default policy ReferrerPolicy []Referrer OriginAgentCluster bool // set true to remove header "X-Content-Type-Options" DisableSniffMimeType bool // set true for header "X-DNS-Prefetch-Control: off" // // default is "X-DNS-Prefetch-Control: on" DisableDNSPrefetch bool // set true to remove header "X-Download-Options: noopen" DisableXDownload bool // X-Frame-Options XFrameOption XFrame // X-Permitted-Cross-Domain-Policies // // default value will be "none" CrossDomainPolicies CDP // X-XSS-Protection // // default is off XssProtection bool }
type OriginValidator ¶
OriginValidator takes an origin string and returns whether that origin is allowed.
type TransportSecurity ¶
Click to show internal directories.
Click to hide internal directories.