Ari's Blog

Reading makes me rich !

Apache の AddHandler 使用すべきではない

leave a comment »

ApacheのAddHandlerはセキュリティ上の懸念から使用すべきではない – Dマイナー志向.

え!?長いこと Apache 使っているけど知らなかった、こんな盲点。しかも決まり文句のように php.conf にビンゴな表記しちゃってるじゃん、しまくりじゃん!

AddHandler php5-script .php

と思いっきり書いてあるが、確かに「最後の拡張子が .php のものが php スクリプトだ」とは表現していない。要するに上記では「.php に部分一致したら php スクリプトだ」と判断される表現なのだ。だから意図せず php として動作させてしまう可能性があるから危険だ、と。

よくあるパターンとしては、「ちょっと修正」という意図で、

% cp -p foo.php foo.php.20150223

などと、とりあえずバックアップを同一ディレクトリに取って、foo.php 修正して意図したとおりに動いたら終わり、という具合な適当な管理をしていると、実は「foo.php.20150223 も普通に php スクリプトとして動作できる」ということだ。

「やばい…」

<FilesMatch “\.(php|php5|phtml)$”>
SetHandler application/x-httpd-php
</FilesMatch>

とかにしないと!冒頭のリンクによると、「最後の拡張子が .php のものが php スクリプトだ」という表現を以下のようにシッカリ書けば、問題の対処になるとも書いてある。

<FilesMatch “\.php$”>
AddHandler php5-script .php
AddType text/html .php
</FilesMatch>

確かに、上記表現なら FileMatch で「末尾が .php にマッチしたら」を条件とした上で AddHandler するのだから、部分一致してしまった .php が実行されるのを防ぐことができる。

やっぱり面倒でも可能な限り厳密な正規表現を使うことが安全への第一歩なのだろうか。

広告

Written by arito

2015-02-24 @ 00:59

カテゴリー: セキュリティ

Tagged with , , ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。