Semantic Web – WordPress

php_flag register_globals Off and Movable Type 3.11, 3.12

leave a comment »

Xrea.com さんのサーバーでは、PHP設定( php.ini ) register_globals On となっています。
Movable Type 3.11-ja では、スーパーグローバル変数 のみ使用しています。
.htaccess 内に下記の1行を追記し、セキュリティ上ハイリスクであるグローバル変数の使用を無効とします。
      php_flag register_globals Off
以下は簡単な解説です。
現在でも、EGPCS (Environment, GET, POST, Cookie, Server) 変数をグローバル変数として指定しないと作動しないサーバアプリケーションソフト (旧バージョンなど) がありますので、Xrea.com さんのサーバーなどでは、PHP設定ファイル php.ini にて、
      register_globals On
と、デフォルト Off (PHP 4.2.0以降) から On へ変更されています。これらの旧プログラムソフトをデフォルトの設定 register_globals Off のサーバ上で使用すると、ブラウザでアクセスしたとき、
   FATAL ERROR: register_globals is disabled in php.ini, please enable it!
などと表示されます。
しかし、本設定を有効 On にすると、セキュリティ上のリスクが多いので、
   http://www.sound-uz.jp/php/tips/security.html#01
PHP4.1.0 以降、セキュリティ上、安全な スーパーグローバル変数 ($_ENV、$_GET、$_POST、$_COOKIE、$_SERVER) の使用が可能となりました。
Movable Type 3.11-ja 以降、ダイナミック・パブリッシングによるPHPページ生成, PHP化が可能となりましたが、MTでは、グローバル変数ではなくスーパーグローバル変数の一部($_GET、$_SERVER など)が使用されています
よって、register_globals Off であっても作動しますので、Xrea.com さんなどのレンタルサーバでは、.htaccess を活用し、従来のグローバル変数使用を無効化することをおすすめいたします。
      php_flag register_globals Off
      php_flag track_vars On
の2行を .htaccess ファイルに追記し、WWWサーバ上のホームディレクトリ内などにアップロードします。
2行目の track_vars は、PHP 4.0.3以降の php.ini ではデフォルト onとなっているので、省略可能のようです。従来のEGPCS 変数は、グローバル連想配列 $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS でそれぞれ参照するようになるとのことです(安全対策上)。

Written by support

2004/12/01 @ 11:03

カテゴリー: ブログ blog

コメントを残す