php.cgiでPHPを動かすことのセキュリティの問題を調べてみた

このページまでのあらすじ

さくらのレンタルサーバ では、ヘテムルで動いていたPHPのincludeコードがそのままでは動かなかった。

なんでや・・・と言うわけで調べてみると、あれやこれやと変更することで、PHPのincludeができなくもない様子。
(詳しくは、【実験結果】さくらでphpのincludeするための方法を詳しく解説をご覧ください)

そこで早速、この方法でテンプレートファイルのincludeを行ったのだった。
でも、セキュリティPHPコードなどの脆弱性については未調査
そこで、セキュリティが大丈夫かどうかについて調べてみることにしたのだった。

スポンサーリンク

セキュリティの問題を探してみた

↓のページでは、cgiでphpを動かすことについてのセキュリティの問題についての情報が書かれてありました。


CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)


#!/bin/sh
exec /usr/local/bin/php-cgi

それによると、現在使用している上のコードなら大丈夫ならしいです。

PHPの設定を以下のように変更します。/cgi-bin/ディレクトリにphp-cgi(CGI版PHP)がコピーしてある場合は削除してください。

これは /cgi-bin/ がないのでなんともできませんでした。

Action application/x-httpd-php5 /cgi-bin/php-wrapper

↓のコードは、さくらのレンタルサーバーでは作動しなかったです。
htaccessファイルにこれを入れるとincludeできなくなるので、これも無理でした。

AddHandler application/x-httpd-php5 .php

なので、とりあえずは

#!/bin/sh
exec /usr/local/bin/php-cgi

だけ適用済みと。。。

・・・でもまあ多分、大丈夫な・・・はず!
(ほんとに? :(;゙゚'ω゚'):)


openfile = file_get_contentsは大丈夫なのか?

<?php $openfile = file_get_contents("http://▲▲.■■/●●.php"); echo $openfile; ?>

上のPHPコードは大丈夫なのかについても調べてみました。
すると、『 ディレクトリ・トラバーサル 』 については危ないらしいと言うことがわかりました。


ディレクトリ・トラバーサル

ディレクトリ・トラバーサルと対策


でも、上のページを見ると、フォルダ名やファイル名でパスをちゃんと指定してあれば大丈夫なようなので、多分これも大丈夫・・・かも?(;´∀`)
(ほんとに?)

ちなみに、現在うちのサイトでは画像や内部リンクを表示するために大量の相対リンク(../や./などが付いているリンク)を貼っていますが、普通はこのような相対リンクを遡ろうとするとエラーが出ます。

なので、ディレクトリトラバーサル問題になるのは、動的URLを吐き出すPHPコードで、相対リンク../../../とか打っていくと、上の階層にドンドン遡って行けてしまうものだけではないかと思います。
(・・・多分!)


このようなわけで、とりあえず今のコードやファイルの状態だと大丈夫なのではないかと言う結論になりました。

でも、これはあくまでも 『 私の調べた所では 』 ですので、セキュリティの脆弱性がないと言うわけではないと思いますので、サーバーの状態などを観察しつつ、問題があるようなら速やかに改善することが大切なのではないかと思います。


次ページ

【ログイン】 さくらレンタルサーバーのメール送受信サービス 【ツール】

前ページ

【軽量化】 503エラー消滅大作戦 【統合】


スポンサーリンク