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 ファイルに記述するという方法が圧倒的に多かったので、もちろん、結果としてどちらも同じではあるけれど、何が違うのか...。
PHP マニュアル を読むと、php_valueは文字列(string)、php_flag は論理値(boolean)の場合に使うということらしく、On にセット済みの論理値を Off (Off = 0、On = 1 になるらしい)に設定するために php_flag を使う方法が通例として紹介してあることにも頷ける。
タイトルの話題から逸れてしまったけど、セキュリティ面については、register_globals = On であったとしても、安全なコードで作成されていれば問題ないわけで、必ずしも危険というわけではないけれど、間違ったコードで書かれていた場合や PHP 6 からは register_globals の設定そのものがなくなるということなどを考慮すると、やはり register_globals = Off で動作するプログラムの方が(いろいろな意味で)安心だということになるのかもしれない。
トラックバック
トラックバックは承認後に表示されます。
URLから "-nospam" を削除してトラックバックを送信してください。