Articles Comments

ちからの備忘録的日記 » diary, tips » nginx のバージョン表示と X-Powerd-By の表示を HTTPヘッダから消してみるの巻

nginx のバージョン表示と X-Powerd-By の表示を HTTPヘッダから消してみるの巻




HTTP/1.1 200 OK
Server: nginx/1.0.12    <--- (1)
Date: Sat, 24 Mar 2012 07:32:31 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.3.3 <--- (2)
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=3, must-revalidate
WP-Super-Cache: Served supercache file from PHP

なんとなく、上記(1)と(2)を消したくなったので、調べてみた。

nginx のバージョン表示を消す

nginx の wikiに、書いてありました。

server_tokens

syntax: server_tokens on|off

default: server_tokens on

context: http, server, location

Whether to send the Nginx version number in error pages and Server header.

context をみるとどこでもいい感じですね。なので、全体に有効にするなら http の context 部分に設定を書けばOKですね。あと、HTTPヘッダだけでなく、エラーページ(たとえば、404 Not Found)のバージョン表記も消すみたいです。

/etc/nginx/conf/nginx.conf を以下のように編集。

... snip ...
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    server_tokens off;  <--- 追記してみました。
... snip ...

設定変更を反映してみる(service nginx reload)と、

HTTP/1.1 200 OK
Server: nginx           <--- (1)
Date: Sat, 24 Mar 2012 07:32:31 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.3.3 <--- (2)
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=3, must-revalidate
WP-Super-Cache: Served supercache file from PHP

(1) の部分が消えましたね。じゃ、次は(2)にいってみます。

PHP のバージョン表示を消す

php のマニュアルをみると書いてありました。

expose_php boolean

Exposes to the world that PHP is installed on the server, which includes the PHP version within the HTTP header (e.g., X-Powered-By: PHP/5.3.7). The PHP logo guids are also exposed, thus appending them to the URL of a PHP enabled site will display the appropriate logo (e.g., » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). This also affects the output of phpinfo()

とりあえず、/etc/php.ini に以下を追記すればOKのようです。

...snip...
;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;

; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://www.php.net/manual/en/ini.core.php#ini.expose-php
; expose_php = On
expose_php = Off <-- Off にしてみました。
...snip...

上記設定を追記し、fastcgi に設定を反映してみる(service spawn-fcgi reload)。

HTTP/1.1 200 OK
Server: nginx
Date: Sat, 24 Mar 2012 07:32:31 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=3, must-revalidate
WP-Super-Cache: Served supercache file from PHP

こちらは X-Powered-By ヘッダそのものの表示が消えましたね。

ちなみに、マニュアルには、phpinfo() での表示にも反映されるとありましたので試してみましたが、設定変更前と何も変わりませんでしたね。

さらに、phpinfo() の表示をみると、php のバージョンだけでなく、nginx のバージョンもばっちり表示されていました。。。まったく意味がないですね。。。

Related Posts Plugin for WordPress, Blogger...

Filed under: diary, tips · Tags: ,

Leave a Reply

*