今天经@wooyaa小师傅安利, 装上了 Arachni, 顺手扫描了一下自己的博客, 发现了几个信息泄露的问题, 于是就有了此文…
什么是HSTS? 为什么需要HSTS?
在网站全站HTTPS后,如果用户手动敲入网站的HTTP地址,或者从其它地方点击了网站的HTTP链接,通常依赖于服务端301/302跳转才能使用HTTPS服务。而第一次的HTTP请求就有可能被劫持,导致请求无法到达服务器,从而构成HTTPS降级劫持。这个问题目前可以通过HSTS(HTTP Strict Transport Security,RFC6797)来解决。
在Nginx中配置HSTS
找到nginx.conf文件(或者vhosts下的子配置文件), 在SSL server块中增加一行add_header
server {
listen 443 ssl;
server_name lzskyline.com;add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
保存退出
隐藏Header中暴露的Nginx版本号
找到nginx.conf文件, 搜索server_tokens, 将其设为off即可
server_tokens off
保存退出
隐藏Header中暴露的PHP版本号
找到php.ini文件, 搜索expose_php, 同样将其设为off
expose_php = Off
保存退出
最后重启一下php和nginx就生效了
sudo pkill php-fpm
sudo php-fpm
sudo service nginx restart