【Apache】HTTPヘッダの確認方法とセキュリティ対策(レスポンスヘッダの変更方法)

通常HTTPヘッダを確認する時は、telnetを使ったりするが、コマンドって何かとめんどくさかったりする。
ブラウザがFirefoxだったら、LiveHTTPHeadersというアドオンを使うと簡単に、リクエストヘッダとか、レスポンスヘッダ等のHTTPヘッダ情報を確認できる。

実際に確認すると。。。
下のようにApacheのバージョン、phpのバージョンまで出力されている。
これはセキュリティ的によくない。

Server: Apache/2.2.6 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5

Apacheのバージョン情報を隠すために、httpd.confのServerTokensとServerSignatureの設定を変更すればよい。
設定がない場合は以下の2行を記述。
ServerSignatureは、エラーメッセージ出力時にフッタを表示するかしないか。
ServerTokensはApacheのバージョンをどこまで細かく出力するか。
※例えばApache2までとかApache/2.2までとか指定できる。ここではApacheって製品名だけを表示する設定。
完全に非表示にする設定もあっていいと思うんだけど。。。

ServerSignature Off
ServerTokens ProductOnly

そして、ApacheをRestartさせて、HTTPヘッダを確認すると、

Server: Apache
X-Powered-By: PHP/5.2.5

ServerのApacheのバージョン情報とphpの情報がなくなった。

でも、X-Powered-Byをみると、まだPHPのバージョン情報が残ってるので、httpd.confのmod_headersを有効にして(下の記述の#コメントを除去)、ヘッダ情報の書換を可能にする。

#LoadModule headers_module modules/mod_headers.so

そして、次の一行を追記。

Header unset X-Powered-By

これで、X-Powered-Byが非表示になる。

Apacheのバージョンとphpのバージョンを伏せるのってサーバー管理の基本だと思うけど。。。
実行してないサーバーもまだまだ多いね。。。

【WordPress】投稿記事でphpを記述できるプラグインrunPHP

記事の中で必要に迫られて、PHP処理したい時がたまにある。
WordPressで、記事中でPHP記述出来るものがないかなぁと探していたら、runPHPというプラグインを見つけた。
探せばやっぱりあるもんだ。
早速ダウンロードしてインストール。
プラグインを有効にして準備完了。
早速コードを書いてみる。

ソースコード

<php
print(date('Y年m月d日 H:i:s'));
?>

実行結果

これまた便利。
今まではテンプレート内で分岐とかしてたからな。。。

【php】Noticeエラーを非表示にする方法

本来phpも変数はちゃんと定義しないといけないわけで。
でもその定義をせずにしょっちゅう以下のような処理の記述をする。

if($_GET["hoge"]){
    print($_GET["hoge"]."です。");
}

これだと$_GET[“hoge”]を定義してないので、phpは本来 Notice: Undefined index:hoge というエラーを出す。
ちゃんと処理を書くなら

if(isset($_GET["hoge"]) && $_GET["hoge"]!=""){
    print($_GET["hoge"]."です。");
}

とでも書くべきだろう。
でも、このNoticeエラーは、そもそも開発者向けのメッセージである。

Noticeエラーを表示させたくない場合は、php.ini で

error_reporting  =  E_ALL & ~E_NOTICE

とする。

PHP 逆引きレシピ (PROGRAMMER’S RECiPE)

著者/訳者:鈴木 憲治 安藤 建一 山田 直明 八木 照朗 山本 義之 河合 勝彦

出版社:翔泳社( 2009-06-30 )

定価:¥ 2,730

Amazon価格:¥ 2,730

単行本(ソフトカバー) ( 768 ページ )

ISBN-10 : 4798119865

ISBN-13 : 9784798119861