灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4096回复:0

简单修改基础header,使服务器更安全

楼主#
更多 发布于:2013-09-05 12:18
今天看到服务器返回的Response header有这么几条信息

Server:nginx/1.4.0
X-Powered-By:PHP/5.5.1
Content-Encoding:gzip问题:

第一条展示了服务器使用的webserver,以及版本号
第二条展示了脚本语言以及版本号
第三条展示了通过gzip进行压缩
安全问题:
那么前两条无疑是将服务器的版本信息暴露出来了,如果在发行版本上出现什么BUG,无异将自己服务器漏洞暴露出来了。

让Nginx 关闭版本显示信息
Nginx 会在 http 头,或者出现错误页的时候会有醒目的版本号提示。
为了安全,可以关闭这些信息。
方法很简单,只需在 nginx.conf 的 http {}  里头加入 server_tokens 的参数
例如:

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;     #关闭版本显示
    client_header_timeout       3m;
    client_body_timeout         3m;
    send_timeout                3m;
    # ...
}重载webserver

1 nginx reload

注意:是重载不是重启哦!
使用 curl 工具测试结果如下:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 11 Dec 2009 01:47:53 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Keep-Alive: timeout=20
Location: http://levi.cg.am/关闭 php X-Powered-By 信息
修改 php.ini 文件,设置

expose_php = Off重启php服务

1 php-fpm restart

关闭gzip输出


引发这个思考是来自这么一个问题
php写了个无刷新输出缓存,但是当nginx设置了gzip压缩之后就无效了,如何设置php才能关闭当前页面的gzip输出呢?

我试图设置php.ini来关闭,不过不好使

1

ini_set('zlib.output_compression','off');

我想也许是因为我的gzip输出是通过nginx设置来的

图片:533905.png


当然也不能使用nginx关闭整站的gzip,我只希望关闭当前页面的gzip,那么我只能通过header输出来关闭gzip压缩

1

header('Content-Encoding: none'.PHP_EOL);

喜欢0 评分0
游客

返回顶部