Nginx 简单安全优化(启用HSTS、禁止嵌套、防XSS攻击、禁止自动解析资源类型)

warning: 这篇文章距离上次修改已过1581天,其中的内容可能已经有所变动。

在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中,检查到攻击时,整个页面会被一个#替换);

效果

2019-12-27_142140.png2019-12-27_142140.png

评论已关闭