PHP
the Month of PHP Bugs
PHP のセキュリティバグの公開が 3 月から始まったらしい。
情報公開についての賛否はいろいろだが、個人的には、知るための手段があるというのはありがたい。また、これらの内容を翻訳されているサイトもあり、さらにありがたい。
もちろん、PHP やセキュリティに関しては詳しくないので、確認したところで、何が書いてあるのかは残念ながら理解できていないのだが...
CGIWrap Error: Real UID could not be changed!
コンテンツを作成するための操作を行なったら、突然、タイトルのようなエラーメッセージが出現した。
はじめましてのエラーということで、調査を開始すると、以外と簡単に XREA のサポートボードでログを発見できた。
「SSIで時々エラーが出る」という質問に対するものではあったが、Webmaster の回答によると、このエラーはシェルレベルの制限(CGI 以外に Cron、SSH 等を含む)で、SSI の同時起動数が多いと出やすくなるということだった。
自分の環境と照らし合わせると、時刻的にも、PHP を CGI として動作させている環境で、Cron ジョブの実行時刻ちょうどに何らかの作業を行なおうとしたことが、エラーの出現に一役買っていたのかも...という気がする。
register_globals = On は危険?
XREA では PHP の register_globals が On に設定してあった...
PHP 4.1 より新しいバージョンでは、デフォルトで Off になっているはずなので、てっきり Off だと思っていたけど、互換性を重視ということだろう。
ちょっとあせったが、Drupal は .htaccess ファイルで 「php_value register_globals 0 」と設定してあるので、問題ない。
そこで、ふと思ったのが、php_value と php_flag の違い。
register_globals を Off にするための方法として、私が調べた限りでは、「 php_flag register_globals 0 」を .htaccsess ファイルに記述するという方法が圧倒的に多かったので、もちろん、結果としてどちらも同じではあるけれど、何が違うのか...。