server_tokens
该响应头用于禁止 nginx 在响应中报文中包含版本信息。因为具体的版本可能会存在未知 bug。
X-Frame-Options
该响应头用于是否允许浏览器加载 frame、 iframe、 object 等属性。可以使用该功能来避免 点击劫持
add_header X-Frame-Options SAMEORIGIN;
该指令用三个可用的配置
当设置为 DENY 时,站点禁止任何页面被嵌入。
当设置为 SAMEORIGIN 时,只允许加载同源的 fram/iframe/object。
当设置为 ALLOW-FROM 时,只允许加载指定的源。
X-Content-Type-Options
在我们通常的请求响应中,浏览器会根据 HTTP 响应的 Content-Type 来分辨响应的类型。如 text/html 代表 html 文档。 但当响应类型未指定或错误指定时,浏览会尝试启用 MIME-sniffing 来猜测资源的响应类型。
add_header X-Content-Type-Options nosniff;
这个响应头的值只能是 nosniff,可用于 IE8+ 和 Chrome。
X-XSS-Protection
add_header X-XSS-Protection "1; mode=block";
该响应头是用于防范及过滤 XSS 的。可用的几个指令如下:
- X-XSS-Protection: 0
- X-XSS-Protection: 1
- X-XSS-Protection: 1; mode=block
- X-XSS-Protection: 1; report=
说明
- 0,禁用 XSS 过滤
- 1,开启 XSS 过滤
- 1; mode=block,开启 XSS 过滤,并且若检查到 XSS 攻击,停止渲染页面。
- X-XSS-Protection: 1; report=<reporting-uri>,开启 XSS 过滤,并且若检查到 XSS 攻击,将使用指导的 url 来发送报告。
Content-Security-Policy
该响应头主要用于规定页面可以加载那些资源(css/js/img 等)。看一个简单的配置
# 定义所有资源文件的默认加载规则为self,表示允许
# 相同来源的内容(相同的协议、域名和端口)
add_header Content-Security-Policy: default-src 'self';
更多 Content-Security-Policy 的指令及规则及介绍可参考 Jerry Qu 的 Content Security Policy 介绍。
Strict-Transport-Security
Strict-Transport-Security,简称 HSTS。该响应头用于标识浏览器用 HTTPS 替代 HTTP 的方式去访问目标站点。
我们可以使用下面方式启用 HSTH。
add_header strict-transport-security: max-age=16070400; includeSubDomains;
当用户第一次访问后,将返回一个包含了 strict-transport-security 响应头的字段。他将告诉浏览器,在接下来的 16070400 秒内,当前网站的所有请求都强制使用 HTTPS 的方式访问。即使用户手动输入 http://,浏览器也会强制使用 HTTPS 方式访问。
参数 includeSubDomains 是可选的,当指定了该参数,所有子域名将采用同样的 HSTS 规则。
参考资源
添加评论