[PHP-users 19114]Re: register_globals =Onはどの程度危険なのでしょう?

naoki kishida kishida @ fk.urban.ne.jp
2003年 11月 26日 (水) 06:06:03 JST


きしだです

どういう風に危険かは、夜が明けてからいろんな人が説明してくださると思うの
で、あえて、「それほど危険じゃない」と言ってみます。

変数を初期化してないときに、外部から値を与えられる可能性があるという危険
性なのですが、値を設定していない変数を使うということは、ミス以外には考え
られません。
そのミスも、ほとんどの場合、動作確認やテストで発見できます。
というか、コーディングに慣れれば、値を設定していない変数を使う可能性があ
るコードはどこか気持ち悪いので、すぐに気付きます。そもそも、そういうミス
をしないコードのクセがついてます。

というわけで、register_globals=Onですでに動いてるシステムを、
register_globals=Offにするためにわざわざコードをすべてみなおして書き換え
るというようなことはやっていません。

ただし、ミスをしてそれがそのまま運用に乗ってしまった場合に、たとえばデー
タベースの任意のテーブルの内容がみえてしまうかもしれない、という危険性が
あります。その可能性は0ではありません。
やはりミスが危険につながる可能性は低い方がいいものです。

ということで
・技術的に信頼できる人だけがコードにさわる
・漏れてはいけない大切な情報を扱わない
という条件が満たされるならregister_globals=onでも構わないんじゃないかと
思います。
「あきらかに初期化されない変数を使ってるコードを見ると気持ち悪い」とか、
「自然に初期化されない変数を使わないコードを書くようになってる」とかになっ
てない人がコードを触る可能性があるなら、register_globals=offにしたほうが
無難でしょう。
いまから新規に作るシステムをregister_globals=onにするメリットも、あまり
ないわけですが。

----
岸田 哉生(きしだ なおき)
	email:kishida @ fk.urban.ne.jp
	http://www.fk.urban.ne.jp/home/kishida/



PHP-users メーリングリストの案内