[PHP-users 11835] Re: PHPバージョンによる相違

Yasuo Ohgaki php-users@php.gr.jp
Wed, 27 Nov 2002 12:22:15 +0900


大垣です。

Osamu Shigematsu wrote:
> 繰り返しますが、register_globals = on で稼動させても、
> まともに開発されているならば、基本的に「問題はない」と
> 私は考えています。

register_globals=onでも安全なプログラムは作成できます。
しかし、register_globals=onで変数汚染バグがないプログ
ラムを作るのはregister_globals=offに較べてかなり大変
です。

実際、多くのregister_globals=onが必要なスクリプトを
見てきましたが、かなりの確立で危ないコードを比較的簡単に見
つけられました。

仮にregister_globals=onは安全なスクリプト作成を2倍
難しくする仮定した場合、2乗の法則に則ると、安全なスクリプト
作成は4倍難しくなる事になります。

# 仮に私が、既存スクリプトをセキュアーな状態にオーディット
# する場合、register_globals=onを維持したままで安全に
# する方が見積もりは高くなります。もちろん、他の条件がはっ
# きりしないと正確な見積もりはできませんが...

> それを、あたかも深刻なセキュリティ上の問題のように
> 「事実誤認」させるような意見が目立ちますし、

私もセキュリティー上の大きな問題として考えている一人です :)

register_globals=onの危険性はBlackHatなどで何年間
に渡って何度も指摘されているにも関わらず、register_globals=on
により多くの危険なスクリプトが量産されてきた現実があります。

# 危険なスクリプトには変数汚染以外の問題もある場合が多い
# ですが...

車に例えるなら、register_globals=onはブレーキの効きを
悪くする変わりに、多少乗り心地を良くできる危険な機能、と言っ
た所と思います。

ブレーキの効きが悪くても車を安全に運転する事はできますが、
効率が良いとは思えません。

# 良く知りませんが、ロールスロイスには乗り心地の良くする為に
# 停止直前にブレーキの効きを悪くする機能があった、と聞いた
# 事があります。(本当??)人が歩く程度の速度になった場合に
# 動作するらしいので危険性は低いらしいですが、詳細は知りま
# せん。この機能、本当なのかずっと気になっています。ご存知の
# からいらっしゃいませんか?
# 実は、これが聞きたくてコメントしていたりします :)

--
Yasuo Ohgaki