[PHP-users 10892] Re: スクリプトがrpm からのインスートルでは動いてソースからだと正しく動きません

Osamu Shigematsu php-users@php.gr.jp
Wed, 16 Oct 2002 16:41:08 +0900


重松です。こんにちは。

小山さんに意見するのも、あれですが。。。

>   デフォルト on だと、公開されている PHP のクラスライブラリもそれを前
> 提にせざるを得ないですし、そもそも、その状況をなんとかしようということ
> で register_globals = off になったわけですよね。

というか、公開されているライブラリでも、
register_globals = on 前提のものもあったりしますし、
少なくともライブラリを使うレベルに至れば、
初心者ではなくなったと思います。

>   今は移行期なので、こういう問題はいろいろ出ると思いますが、辛抱強く啓
> 蒙活動をする以外解決策はないのかなと思います。

これに関しては、おっしゃるとおりなんですが、
php はあまりに仕様変更が頻繁なので、
書籍などの情報もすぐに陳腐化するし、
追いかける (コードを修正する) のも大変です。

> > # というか、このこと (register_globals=on がセキュリティ上やばい) に
> > # 気づかないような人は、よっぽどセンスがないと思われます。
> 
>   register_globals = on でもセキュアなプログラミングは可能です。無自覚
> に変数を使ってはいけないというだけのことなのですが、これを初心者に求め
> るのはちょっと酷というものでしょう。

可能でしょうが、人間がミスをしないということを前提とするのは、
よろしくないのでは。

とくに、PHP の場合、「適当に書く」時に使うものなので、
安全にコーティングができるそういう仕組みがあること自体がありがたいです。

# 例外 try{}catch{}finally{} とか、5 になれば、使えるのでしょうか。。。

あとは、強引だけど、./configure で --register-globls=off する、
というのはどうでしょうか。そうすれば、古い解説書などの
インストールオプションにはないので、よく読まない人は、
過去との互換性のあるモードでインストールされ、
この問題に気づいているユーザは、当然オプションを有効にするか、
php.ini あたりで設定すると思うので、円満解決しそうな気がしています。

-- 
Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp>