在Nginx配置文件中添加以下代码即可
#开启HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
#添加 X-Frame-Options 头部,确保不会嵌入到frame 或 iframe,使得网站的内容不会嵌入到其他网站。
add_header X-Frame-Options "DENY";
#禁止服务器自动解析资源类型
add_header X-Content-Type-Options nosniff;
#防XSS攻击,mode=block
add_header X-Xss-Protection "1; mode=block";
Strict-Transport-Security
Strict-Transport-Security
,用于告诉浏览器网站启用HTTPS了,要求浏览器总是通过HTTPS来访问它。而不是通过301/302重定向到HTTPS站点。
这项功能叫做HTTP Strict Transport Security
,简称为HSTS
。
主要参数有三个
max-age
,用于指定生效的时间(秒),一般我们都设定大于一年的时间,比如63072000(秒)
。includeSubDomains
(可选),用来指定是否作用于子域名。preload
(可选),浏览器使用内置的 HTTPS 域名列表处理。不是标准的一部分。ps:如果网站没有在这个列表里,那么理论上可以不添加这个参数。
当然Chrome内部预置了一个HSTS硬编码列表,你可以访问chrome://net-internals/#hsts,来进入HSTS管理界面。
如果想把自己的网站也加入到这列表里,可以访问https://hstspreload.org/
X-Frame-Options
X-Frame-Options
,是为了减少点击劫持(Clickjacking)而引入的一个响应头。
该响应头支持三种配置:
DENY
:不允许被任何页面嵌入;SAMEORIGIN
:不允许被本域以外的页面嵌入;ALLOW-FROM uri
:不允许被指定的域名以外的页面嵌入;
X-Content-Type-Options
这个响应头的值只能是 nosniff
,用来禁止浏览器自动猜测资源类型,防止他人被利用。
X-Xss-Protection
X-Xss-Protection
,是用来防范XSS的。
该响应头支持三种配置:
0
:禁用XSS保护;1
:启用XSS保护;1; mode=block
:启用XSS保护,并在检查到XSS攻击时,停止渲染页面(例如IE8中,检查到攻击时,整个页面会被一个#替换);
效果
![](/usr/themes/waxy/img/loading.gif)
2019-12-27_142140.png