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

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


きしだです

> $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
> とすることによって、認証のロジックを無視し、値を代入
> 出来るといったことになります。

このコードでvalidの値を外部から設定できるなら、かなり怖いですが、さすが
にそれはないのではないでしょうか。
とりあえず4.2.2で確認したところ、$valid=0としたら外部から値を設定しても
$validは0になりましたよ。

$validの初期化が無い場合を例示したかったのではないかと思いますが。

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



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