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
接下来就对这些有问题的项目进行研究和观察,修改设置,从最简单的入手。
Server Banner:主要是服务器版本号在响应头中出现,那么就隐藏它。
本站使用的是Nginx,隐藏版本号只需要修改 /etc/nginx/nginx.conf 文件,添加下面一行到 http 块中。
此处略去相关代码,请查看桌面标准版文章。
现在重新测试,得分已经到了61分了。
接着修复安全问题。
Frame Options:这个是用来控制网站是否被允许放在iframe或者frame,或object标签中。禁止framing,可以阻止clickjacking攻击。
我这里是在 Nginx 的 配置文件中, server块里加入下面这行,只允许本站嵌入。
此处略去相关代码,请查看桌面标准版文章。
现在所测得的分数已经到了90分了。
另外还有三项没有配置。这里也介绍一下。
Content Security Policy,是用于定义页面可以加载哪些资源,以减少XSS的发生。它可以定义不同类型的资源所允许的加载策略,包括script,style,img,font等等。
Public Key Pins:防止证书被中间人劫持的机制。
Subresource Integrity:在使用CDN的时候,用来验证所下载的资源没有被中途篡改的机制。
上面三项都是比较复杂,而且需要仔细规划后才能使用的,而错误的配置可能会带来很多的麻烦,所以,就先不动它们了。