今天经@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

如果觉得我的文章对你有用,请随意赞赏