php.cgiでPHPを動かすことのセキュリティの問題を調べてみた
このページまでのあらすじ
さくらのレンタルサーバ では、ヘテムルで動いていたPHPのincludeコードがそのままでは動かなかった。
なんでや・・・と言うわけで調べてみると、あれやこれやと変更することで、PHPのincludeができなくもない様子。
(詳しくは、【実験結果】さくらでphpのincludeするための方法を詳しく解説をご覧ください)
そこで早速、この方法でテンプレートファイルのincludeを行ったのだった。
でも、セキュリティやPHPコードなどの脆弱性については未調査。
そこで、セキュリティが大丈夫かどうかについて調べてみることにしたのだった。
セキュリティの問題を探してみた
↓のページでは、cgiでphpを動かすことについてのセキュリティの問題についての情報が書かれてありました。
#!/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("https://▲▲.■■/●●.php");
echo $openfile; ?>
上のPHPコードは大丈夫なのかについても調べてみました。
すると、『 ディレクトリ・トラバーサル 』 については危ないらしいと言うことがわかりました。
でも、上のページを見ると、フォルダ名やファイル名でパスをちゃんと指定してあれば大丈夫なようなので、多分これも大丈夫・・・かも?(;´∀`)
(ほんとに?)
ちなみに、現在うちのサイトでは画像や内部リンクを表示するために大量の相対リンク(../や./などが付いているリンク)を貼っていますが、普通はこのような相対リンクを遡ろうとするとエラーが出ます。
なので、ディレクトリトラバーサル問題になるのは、動的URLを吐き出すPHPコードで、相対リンクで../../../とか打っていくと、上の階層にドンドン遡って行けてしまうものだけではないかと思います。
(・・・多分!)
このようなわけで、とりあえず今のコードやファイルの状態だと大丈夫なのではないかと言う結論になりました。
でも、これはあくまでも 『 私の調べた所では 』 ですので、セキュリティの脆弱性がないと言うわけではないと思いますので、サーバーの状態などを観察しつつ、問題があるようなら速やかに改善することが大切なのではないかと思います。
次ページ
前ページ
広告