headers

package
v0.1.27 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const ReferrerNoReferrer = "no-referrer"

ReferrerNoReferrer 不发送Referrer信息

View Source
const ReferrerNoReferrerWhenDowngrade = "no-referrer-when-downgrade"

ReferrerNoReferrerWhenDowngrade 仅在HTTPS到HTTP时不发送

View Source
const ReferrerSameOrigin = "same-origin"

ReferrerSameOrigin 仅同源时发送

View Source
const ReferrerStrictOrigin = "strict-origin"

ReferrerStrictOrigin 只发送源(严格)

View Source
const ReferrerStrictOriginWhenCrossOrigin = "strict-origin-when-cross-origin"

ReferrerStrictOriginWhenCrossOrigin 跨域时仅发送源(严格)

View Source
const XFrameDeny = "DENY"

XFrameDeny 拒绝所有iframe嵌入

View Source
const XFrameSameOrigin = "SAMEORIGIN"

XFrameSameOrigin 仅允许同源iframe嵌入

Variables

This section is empty.

Functions

func AutoContentType added in v0.1.26

func AutoContentType() func(http.Handler) http.Handler

AutoContentType 设置正确的Content-Type头的中间件

func CSPBasic

func CSPBasic() string

CSPBasic 返回基本的CSP策略

func CSPModern added in v0.1.24

func CSPModern() string

CSPModern 返回适合现代Web应用的CSP策略

func CSPStrict

func CSPStrict() string

CSPStrict 返回严格的CSP策略

func DefaultDocumentPolicy added in v0.1.24

func DefaultDocumentPolicy() string

DefaultDocumentPolicy 返回默认的文档策略

func DefaultPermissionsPolicy added in v0.1.24

func DefaultPermissionsPolicy() string

DefaultPermissionsPolicy 返回默认的权限策略

func DefaultReportingEndpoints added in v0.1.24

func DefaultReportingEndpoints(endpoint string) string

DefaultReportingEndpoints 返回默认的报告终端配置

func GetSecurityHeadersMiddleware added in v0.1.26

func GetSecurityHeadersMiddleware() func(http.Handler) http.Handler

GetSecurityHeadersMiddleware 提供默认安全头中间件

func HSTSValue

func HSTSValue(maxAge int, includeSubdomains bool, preload bool) string

HSTSValue 生成HSTS头部值

func New

func New(options ...func(*Config)) mist.Middleware

New 创建一个新的安全头部中间件

func RemoveServerHeaders added in v0.1.26

func RemoveServerHeaders() func(http.Handler) http.Handler

RemoveServerHeaders 移除X-Powered-By和Server头的中间件

func SetContentSecurityPolicy added in v0.1.26

func SetContentSecurityPolicy(value string) func(*SecurityHeaders)

SetContentSecurityPolicy 设置内容安全策略

func SetHSTS added in v0.1.26

func SetHSTS(enable bool, maxAge time.Duration, includeSubDomains, preload bool) func(*SecurityHeaders)

SetHSTS 设置HSTS策略

func SetXFrameOptions added in v0.1.26

func SetXFrameOptions(value string) func(*SecurityHeaders)

SetXFrameOptions 设置X-Frame-Options选项

func WithCSPReporting added in v0.1.24

func WithCSPReporting(enabled bool) func(*Config)

WithCSPReporting 设置CSP报告模式

func WithContentSecurityPolicy

func WithContentSecurityPolicy(policy string) func(*Config)

WithContentSecurityPolicy 设置内容安全策略

func WithContentTypeNoSniff

func WithContentTypeNoSniff(enabled bool) func(*Config)

WithContentTypeNoSniff 设置内容类型嗅探保护

func WithCrossOriginPolicies

func WithCrossOriginPolicies(embedder, opener, resource string) func(*Config)

WithCrossOriginPolicies 设置跨源政策

func WithDocumentPolicy added in v0.1.24

func WithDocumentPolicy(policy string) func(*Config)

WithDocumentPolicy 设置文档策略

func WithExpectCT

func WithExpectCT(enabled bool, maxAge int, enforce bool) func(*Config)

WithExpectCT 设置Expect-CT

func WithHSTS

func WithHSTS(enabled bool, maxAge int, includeSubdomains bool, preload bool) func(*Config)

WithHSTS 设置HSTS

func WithNonce added in v0.1.24

func WithNonce(enabled bool) func(*Config)

WithNonce 设置是否启用Nonce

func WithPermissionsPolicy

func WithPermissionsPolicy(policy string) func(*Config)

WithPermissionsPolicy 设置权限策略

func WithReferrerPolicy

func WithReferrerPolicy(policy string) func(*Config)

WithReferrerPolicy 设置引用来源政策

func WithReportURI added in v0.1.24

func WithReportURI(uri string) func(*Config)

WithReportURI 设置报告URI

func WithReportingEndpoints added in v0.1.24

func WithReportingEndpoints(endpoints string) func(*Config)

WithReportingEndpoints 设置报告终端

func WithUpgradeInsecureRequests added in v0.1.24

func WithUpgradeInsecureRequests(enabled bool) func(*Config)

WithUpgradeInsecureRequests 设置是否启用升级不安全请求

func WithXFrameOptions

func WithXFrameOptions(option string) func(*Config)

WithXFrameOptions 设置X-Frame-Options

func WithXSSProtection

func WithXSSProtection(enabled bool) func(*Config)

WithXSSProtection 设置XSS保护

func XFrameAllowFrom

func XFrameAllowFrom(uri string) string

XFrameAllowFrom 允许特定来源的iframe嵌入

Types

type CSPBuilder

type CSPBuilder struct {
	// contains filtered or unexported fields
}

CSPBuilder 用于构建内容安全策略的生成器

func NewCSPBuilder

func NewCSPBuilder() *CSPBuilder

NewCSPBuilder 创建新的CSP生成器

func (*CSPBuilder) Add

func (b *CSPBuilder) Add(directive string, values ...string) *CSPBuilder

Add 添加内容安全策略指令

func (*CSPBuilder) RequireSRI added in v0.1.24

func (b *CSPBuilder) RequireSRI(directive string, require bool) *CSPBuilder

RequireSRI 为特定指令要求使用SRI

func (*CSPBuilder) String

func (b *CSPBuilder) String() string

String 生成内容安全策略字符串

type Config

type Config struct {
	// XSSProtection 启用XSS保护
	XSSProtection bool
	// ContentTypeNoSniff 禁止内容类型嗅探
	ContentTypeNoSniff bool
	// XFrameOptions X-Frame-Options 设置
	XFrameOptions string
	// HSTS 是否启用HTTP严格传输安全
	HSTS bool
	// HSTSMaxAge HSTS最大存活时间(秒)
	HSTSMaxAge int
	// HSTSIncludeSubdomains 是否包含子域名
	HSTSIncludeSubdomains bool
	// HSTSPreload 是否启用预加载
	HSTSPreload bool
	// ContentSecurityPolicy 内容安全策略
	ContentSecurityPolicy string
	// ReferrerPolicy 引用来源政策
	ReferrerPolicy string
	// PermissionsPolicy 权限策略
	PermissionsPolicy string
	// XContentTypeOptions X-Content-Type-Options 头部
	XContentTypeOptions string
	// ExpectCT 证书透明度期望
	ExpectCT bool
	// ExpectCTMaxAge Expect-CT 最大存活时间(秒)
	ExpectCTMaxAge int
	// ExpectCTEnforce 是否强制执行Expect-CT
	ExpectCTEnforce bool
	// CrossOriginEmbedderPolicy 跨源嵌入者策略
	CrossOriginEmbedderPolicy string
	// CrossOriginOpenerPolicy 跨源打开者策略
	CrossOriginOpenerPolicy string
	// CrossOriginResourcePolicy 跨源资源策略
	CrossOriginResourcePolicy string
	// DocumentPolicy 文档策略
	DocumentPolicy string
	// ReportTo 违规报告配置
	ReportTo string
	// ReportURI CSP违规报告URI
	ReportURI string
	// EnableNonce 是否启用CSP nonce
	EnableNonce bool
	// EnableUpgradeInsecureRequests 是否启用升级不安全请求
	EnableUpgradeInsecureRequests bool
	// CSPReporting 是否启用CSP报告模式
	CSPReporting bool
}

Config 安全头部配置

func DefaultConfig

func DefaultConfig() Config

DefaultConfig 返回默认的安全头部配置

type SecurityHeaders added in v0.1.26

type SecurityHeaders struct {
	// XFrameOptions 控制页面是否可以被嵌入到iframe中
	// 可选值: DENY, SAMEORIGIN, ALLOW-FROM uri
	XFrameOptions string

	// XContentTypeOptions 防止MIME类型嗅探
	// 可选值: nosniff
	XContentTypeOptions string

	// XSSProtection 启用跨站脚本过滤
	// 可选值: 0, 1, 1; mode=block
	XSSProtection string

	// ContentSecurityPolicy 内容安全策略
	ContentSecurityPolicy string

	// ReferrerPolicy 控制Referer头的发送
	ReferrerPolicy string

	// StrictTransportSecurity HTTP严格传输安全
	// includeSubDomains: 是否包含子域名
	// preload: 是否加入HSTS预加载列表
	// maxAge: 有效期(秒)
	HSTS struct {
		Enable            bool
		MaxAge            time.Duration
		IncludeSubDomains bool
		Preload           bool
	}

	// PermissionsPolicy 权限策略
	PermissionsPolicy string

	// CacheControl 缓存控制
	CacheControl string

	// ExpectCT 证书透明度期望
	ExpectCT struct {
		Enable    bool
		MaxAge    time.Duration
		Enforce   bool
		ReportURI string
	}

	// CrossOriginEmbedderPolicy 跨域嵌入者策略
	CrossOriginEmbedderPolicy string

	// CrossOriginOpenerPolicy 跨域打开者策略
	CrossOriginOpenerPolicy string

	// CrossOriginResourcePolicy 跨域资源策略
	CrossOriginResourcePolicy string

	// ReportTo 报告机制
	ReportTo string
}

SecurityHeaders 包含所有可配置的安全HTTP头

func DefaultSecurityHeaders added in v0.1.26

func DefaultSecurityHeaders() *SecurityHeaders

DefaultSecurityHeaders 返回推荐的默认安全头设置

func NewSecurityHeaders added in v0.1.26

func NewSecurityHeaders(options ...func(*SecurityHeaders)) *SecurityHeaders

NewSecurityHeaders 创建安全头设置

func (*SecurityHeaders) Middleware added in v0.1.26

func (sh *SecurityHeaders) Middleware() func(http.Handler) http.Handler

Middleware 创建一个添加安全头的HTTP中间件

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL