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

Vientoこうの kouno @ viento.jp
2003年 11月 26日 (水) 06:59:59 JST


河野と申します。

martinさん、きしださん、森さん。返信ありがとうございます。

「register_globals 危険」を検索して手元の書籍と照らしながら
うなっている間に空は白んでいつの間にか朝。しかもこんな時間
なのにきしださん、森さんの返信が。どうもありがとうございます。

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

つまり私がコードを触る環境ではregister_globals=offにするべきなの
ですね。

>例えばですが、下記のようなスクリプトがあったとします。
>
>$valid = 0;
>if($validPassword === "drowssaP")
>     $valid = 1;
>
>if ($valid === 1)
>     print "認証が成功した場合に表示する";
>
>この例ではパスワードが正しい場合には$validに1
>が代入され、その後のチェックで$validが1の時にだけ表示
>するというスクリプトです。しかしregister_globals = onが
>設定されていると http://example.com/foo.php?valid=1
>とすることによって、認証のロジックを無視し、値を代入
>出来るといったことになります。このような動作が極めて
>危険ということです。つまり、定義されている変数が予期せぬ
>値に勝手に置き換えられている可能性があるということです。

これは私にも危険らしいことあ理解できる例示ですね。

だとするとまだまだ『あきらかに初期化されない変数を使って』
も鼻が利かない私は、register_globals=offにした状態で使用し
たほうがよさそうです。

実はまだ詳細な違いが理解できていないのですが、例示いただい
たサンプルでON OFFでの違い、直し方、などを実習してみたいと
思います。

ありがとうございました。
これをみると
-- 


/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/  studio  VIENTO
/_/  河野 明日路                 
_/_/  e-mail  kouno @ viento.jp
/_/_/            akihiro @ ca2.so-net.ne.jp
_/_/_/    URL  http://www.viento.jp/
/_/_/_/                (ドメイン取得に伴い改装中)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


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