[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 メーリングリストの案内