2018-02-28
web サイトは、XSS 攻撃を防ぐために、HTTP のレスポンスに X-XSS-Protection ヘッダを付けるべきなのだという。
Apache では、httpd.conf に、以下のような行を挿入する。
〜
# avoid XSS atacks (for some browsers)
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
Header always set X-XSS-Protection "1; mode=block"
〜
適切な状態であれば、HTTP のレスポンスヘッダに「X-XSS-Protection: 1; mode=block」が現れるだろう。
% telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.0
HTTP/1.1 200 OK
Date: Wed, 28 Feb 2018 12:50:16 GMT
Server: Apache/2.4.29 (FreeBSD) OpenSSL/1.0.2k-freebsd
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
〜
なお、Header と set の間に always が無いと、試した限りでは、HTTP の応答が
301 や 403 や 404 になるときに、X-XSS-Protection が現れないことがあった。
always を付けると常に出るようになった。
以下の情報源では、X-XSS-Protection に always を付けている (ことがある)。