SQLの窓

2012年06月09日

かなり前(03/30/2009)、『さくらのレンタルサーバで、拡張子HTML(HTM)をPHPとして実行する』では、php.cgi なんか使ってないわけですよ

さくらから、緊急のメールが来まして。

過去に自身でPHPを設置されたお客様、または弊社 /usr/local/bin や
/usr/local/php 等からPHPをコピーされたお客様は、以下の脆弱性が修復
されていないPHPを外部から実行される可能性がございます。

    http://www.php.net/archive/2012.php#id2012-05-03-1
    http://www.php.net/archive/2012.php#id2012-05-06-1

この脆弱性は外部から任意のコマンドが実行可能という大変危険な問題と
なっております。
なんですが、自分の当時のレポートを取り出してみました。( maglog なくなったのでまだ復旧してませんでした ) ここから ------------------------------------------------------------- さくらのOSがバージョンアップされたのを機に、前から気になっていた事を確かめました。結論から言うと、タイトルを実現するのに、/usr/local/bin/php-cgi をコピーして来る必要はありません。もともと、このファイルは php のラッパーで、その中から呼ばれている実際の php が書き換わらないから今回OSが変更された時にエラーになったような気がします。 Unix の開発をした事はありますが、Apache は専門外なので理屈は良くわかりませんが、以下の方法で二つのさくらサーバーで確認しました。 1) /abc/r.php を作成( 中身は空、abc は URL 内ならどこでも良い ) 2) htm のあるディレクトリの .htaccess に以下を記述 AddHandler keyword_01 htm Action keyword_01 /abc/r.php keyword_01 はなんでも良い、htm にピリオドはあっても無くても複数必要ならば、スペースで区切って並べる 以下は、std.htm の中身 <? print_r($_SERVER); ?> <? phpinfo(1); ?> 以下はstd.htm と std.php 実行結果の違い。 std.htm [REDIRECT_URL] => /html/std.htm [REMOTE_PORT] => 1292 [SCRIPT_FILENAME] => /home/winofsql/www/html/std.htm [REQUEST_URI] => /html/std.htm [SCRIPT_NAME] => /html/std.htm [ORIG_SCRIPT_FILENAME] => /home/winofsql/www/abc/r.php [ORIG_PATH_INFO] => /html/std.htm [ORIG_PATH_TRANSLATED] => /home/winofsql/www/html/std.htm [ORIG_SCRIPT_NAME] => /abc/r.php [PHP_SELF] => /html/std.htm std.php [REMOTE_PORT] => 1297 [SCRIPT_FILENAME] => /home/winofsql/www/html/std.php [REQUEST_URI] => /html/std.php [SCRIPT_NAME] => /html/std.php [PHP_SELF] => /html/std.php そして、r.php を置いた所に php.ini を置くとそれが読み込まれます。非常に都合の良い簡単な理屈ですね。よく解りませんが。 そして、r.cgi も試したのですが、こいつは r.cgi が実行されたわけです。つまり、マニュアルに書かれている表現と合致する結果です。 PHP では、まったくメモリ上で素通りしているような感じですね。サーブレットのフォワード、ASP にもそんなのありましたが、とにかく、php-cgi をコピーしたテストも行っていますが、見た目の結果は全く同じ。可能性として、こちらだと OS がまた変わっても問題なさそうです。 あとは、CPU の占有具合ですが・・・さすがに、それは調べる方法が解りません。 実運用したわけでは無いので本当の性能差は解りませんが、そもそも実装が簡単なので、あまり深く考えなくてもいいような気がします。 ( さくらは、上位レンタルでないかぎり、cgi ですし ) ------------------------------------------------------------- ここまで ( ※ 実際は AddHandler myphp-script .htm とか書いてます ) と言う事で、もとより対処する必要が無かったのでした。ちなみに今でもこのページはたくさんありますが、機嫌良く動いているのです。( さくらさん凄い ) よくよく読むと、5.3.x と 5.4.x の脆弱性だったみたいですが・・・さくらの前バージョンが 5.3.10 のようなのでその為の対応のようで、5.2.17 使ってる人は関係無いみたいですね。なにもさくら側で更新されたふしは無いようなので( とは言うもののちょっと不安ですが、バージョン上げてくれというアナウンスは無いし、上げたくても MySQL が 4.0 なので上げれないのです )
posted by at 2012-06-09 02:00 | 古い記事 | このブログの読者になる | 更新情報をチェックする


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX