HTTP安全报告

HTTP Security Report,就是HTTP安全报告是用来测试网站在网络安全方面的工具。
今天检测了一下本站。结果得分为48。
查看一下细节:
服务器时钟:正确
HSTS设置:正确
Runtime Information:正确
Iframe Sandbox:正确
HTTP Strict Transport Security:正确
Mixed HTTPS and HTTP: 正确
SSL/TLS设置:正确

有问题的是下面几项:

  • Content Security Policy
  • Content Type Options
  • Public Key Pins
  • Frame Options
  • Subresource Integrity
  • Cache Control
  • Server Banner

http-security-report.jpg

接下来就对这些有问题的项目进行研究和观察,修改设置,从最简单的入手。

Server Banner:主要是服务器版本号在响应头中出现,那么就隐藏它。

本站使用的是Nginx,隐藏版本号只需要修改 /etc/nginx/nginx.conf 文件,添加下面一行到 http 块中。

server_tokens off;

然后重新载入 nginx 服务器。

Content Type Options: 是所谓类型嗅探,当一个文件的内容类型不是标准的时候,某些浏览器会启用MIME-sniffing来猜测资源类型,并解析执行,这时会有安全隐患。所以我就在 Nginx 的Server块中增加了下面这段指令,然后重启。

add_header X-Content-Type-Options nosniff;

现在重新测试,得分已经到了61分了。
接着修复安全问题。

Frame Options:这个是用来控制网站是否被允许放在iframe或者frame,或object标签中。禁止framing,可以阻止clickjacking攻击。

我这里是在 Nginx 的 配置文件中, server块里加入下面这行,只允许本站嵌入。

add_header X-Frame-Options sameorigin;

其实这里还有两种配置, sameorigin 意思就是允许本站嵌入; allow-from uri 意思是可以允许指定的域名嵌入。

得分升到69了。

Cache Control:这时常用的缓存控制机制,允许的参数有 public,private,nocache或者no-store。这里我选择的是 public。在配置文件的 server 块中,加入下面这行,容纳后重启nginx。

add_header Cache-Control "public";

此时再测安全性,得到的分数是84了。

Web Framework Information: 就是指的类似 x-Powered-By,x-Runtime,之类的显示网站所用技术的文件头。本站所透露的就是

  1. x-powered-by:
    PHP/5.5.9-1ubuntu4.14

暴露了版本号会让黑客知道你用的是否是已经落后的软件,而落后过时的软件可能会有没有修补的漏洞。

所以,基于本站的情况,在php.ini 配置文件中,修改下面这个相关参数后重启php5-fpm。

expose_php = off

现在所测得的分数已经到了90分了。

另外还有三项没有配置。这里也介绍一下。

Content Security Policy,是用于定义页面可以加载哪些资源,以减少XSS的发生。它可以定义不同类型的资源所允许的加载策略,包括script,style,img,font等等。

Public Key Pins:防止证书被中间人劫持的机制。

Subresource Integrity:在使用CDN的时候,用来验证所下载的资源没有被中途篡改的机制。

上面三项都是比较复杂,而且需要仔细规划后才能使用的,而错误的配置可能会带来很多的麻烦,所以,就先不动它们了。

所以本站现在的HTTP安全等分是90分


作者: David Yin
原载: SEO 网站优化推广
版权所有。转载时必须以链接形式注明作者和及本声明。