2011年1月11日火曜日

"FileETag None"でETagを消す(Apache)

スズキです。

HTTPレスポンスのETagにinode情報が含まれているとよくないという
セキュリティのチェックポイントがあります。

その対策として、ETag自体を出力しない方法です。
(Apache 2.2.x です)

まず、デフォルト状態のレスポンスはこんな感じで
ETagが含まれています。

# telnet localhost 80
--------
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /test.txt HTTP/1.1
Host: localhost
HTTP/1.1 200 OK
Date: Tue, 11 Jan 2011 01:27:59 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 11 Jan 2011 01:27:01 GMT
ETag: "cc068-5-fb348340"
Accept-Ranges: bytes
Content-Length: 5
Connection: close
Content-Type: text/plain; charset=UTF-8
test
Connection closed by foreign host.
--------

ETagを消すには、httpd.confに下記を記述します。
--------【httpd.conf】--------
...
FileETag None
--------

するとHTTPレスポンスが以下のようになり、
ETagが消えていることがわかります。

# telnet localhost 80
--------
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /test.txt HTTP/1.1
Host:localhost
HTTP/1.1 200 OK
Date: Tue, 11 Jan 2011 01:37:10 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 11 Jan 2011 01:27:01 GMT
Accept-Ranges: bytes
Content-Length: 5
Connection: close
Content-Type: text/plain; charset=UTF-8
test
Connection closed by foreign host.
--------

セキュリティを意識したApacheの設定は、一旦、まとめておこう。
--------
http://www.suz-lab.com

0 コメント: