代码示例

安全头配置
// SecurityHeaders 中间件设置的头: X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=() Content-Security-Policy: default-src 'self'; ...
CSP 配置
// Content-Security-Policy 说明: // default-src 'self': 默认只允许同源 // style-src 'self' 'unsafe-inline' https: 样式表 // script-src 'self' 'unsafe-inline' 'unsafe-eval' https: 脚本 // img-src 'self' data: https: 图片 // font-src 'self' data: https: 字体 // frame-src 'self' https: 框架 // connect-src 'self' https: 连接(AJAX/WebSocket) // object-src 'none': 禁止插件 // base-uri 'self': 基础 URI // form-action 'self': 表单提交

安全头说明

安全头 作用
X-Content-Type-Options nosniff 防止 MIME 类型嗅探
X-Frame-Options SAMEORIGIN 防止点击劫持
X-XSS-Protection 1; mode=block 启用 XSS 过滤
Referrer-Policy strict-origin-when-cross-origin 控制 Referer 信息
Permissions-Policy camera=(), microphone=(), ... 限制浏览器功能
Content-Security-Policy default-src 'self'; ... 内容安全策略

CSP 配置详解

Content-Security-Policy

default-src 'self' - 默认只允许同源

style-src 'self' 'unsafe-inline' https: - 样式表

script-src 'self' 'unsafe-inline' 'unsafe-eval' https: - 脚本

img-src 'self' data: https: - 图片

font-src 'self' data: https: - 字体

frame-src 'self' https: - 框架

connect-src 'self' https: - 连接(AJAX/WebSocket)

object-src 'none' - 禁止插件

base-uri 'self' - 基础 URI

form-action 'self' - 表单提交