七种HTTP头部设置保护你的网站应用安全

  现代的网络浏览器提供了很多的安全功能,旨在保护浏览器用户免受各种各样的威胁,如安装在他们设备上的恶意软件、监听他们网络流量的黑客以及恶意的钓鱼网站。

1. Frame选项

在你的网站上设置X-Frame-Options头部可以保护你的网站内容被别人包含在一个iframe中,也就是Html的框架中,如果别人用iframe包含了你的网站页面,他们就可能强迫用户在你网站某个部分点击隐藏在iframe中恶意代码,比如clickjacking攻击。将这个选项设置为DENY是完全堵塞在一个框架中显示你的网站,SAMEORIGIN设置则是框架中只能显示来自同一个服务器的内容,而ALLOW-FROM则是你规定的白名单。

Nginx中编辑nginx.conf ,在server段加入:

add_header X-Frame-Options "SAMEORIGIN";

使用Web开发工具,或HTTP Header online tool 能够看到如下:

 

2. XSS审计

跨站脚本Cross-site scripting (XSS)是最普遍的危险攻击,经常用来注射恶意代码到你的应用以获得登录用户的数据,或者利用优先权执行一些动作,设置X-XSS-Protection能保护你的网站免受跨站脚本的攻击。

Nginx在nginx.conf的server段中加入:

add_header X-XSS-Protection "1; mode=block";

 

3.Content Type选项

一些浏览器非常聪明,会猜测默认的数据传输内容,比如即使服务器说这是一个普通文本文件,浏览器也会当成一个HTML文件渲染输出显示,这会被黑客用来导向不信任的Javacript代码,设置X-Content-Type-Options为nosniff ,就是强迫浏览器尊重服务器端指定的文件类型。

在Nginx.conf的server段加入:

add_header X-Content-Type-Options nosniff;

 

4.HTTP Strict Transport Security

阻止浏览器拒绝被黑客从HTTPS切换到HTTP等不安全的网址下载内容,HSTS头部选项会强迫用户开始通过HTTPS连接时,以后的连接都是通过HTTPS。

在Nginx.conf的server段加入:

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";

 

5. Public Key Pinning Extension for HTTP

该选项只适用于HTTPS,,第一次这个头部信息不做任何事,一个用户加载你的站点,它会注册你的网站使用的证书,阻止你的用户浏览器使用假装是你的网站证书但不一样从而连接到恶意服务器,保护你的用户免受能够创建任何域名证书的黑客攻击。

 

6. Content Security Policy

内容安全策略(CSP)列出你网站允许使用的所有授权的域名和资源,如果用户加载一个黑客注入恶意资源的页面,浏览器只会加载你的页面,阻止黑客资源加载,该项应该对中国电信 移动 联通 长城宽带等ISP恶意网页劫持有阻止作用。

由于该内容较多,可以到http://cspisawesome.com/帮助你自动生成配置,然后在Nginx.conf加入。

在Nginx.conf的server段加入:

add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://assets.zendesk.com; font-src 'self' https://themes.googleusercontent.com; frame-src https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'";

 

7.Cookie Protection

如果你的cookie带有用户的授权信息,该项能够保护你的Cookie的安全性,有两种:

1. HttpOnly,会阻止XSS攻击将你的用户cookie发给黑客

2.Secure属性能让Cookie通过HTTPS连接,而不是HTTP,这样,能够访问你的网络的黑客无法读取未加密的Cookie。

 

Nginx提高安全与性能的最好配置