ねこ丸です。
Bruce. writes:
> リモート・ファイル・インクルード攻撃:ITpro
> http://itpro.nikkeibp.co.jp/article/COLUMN/20070605/273596/
ちょっと意味が分からないですね、この記事。
PHP 5.2 以降を使うというのは、PHP 5.2 以降から include(), require()
の際に URL を指定することを禁止する機能が追加されたからだと思います。
fopen() に URL を与えられなくする機能は 4 のいつだったかで加わっていま
す。
で、include, require の際に使うパラメータは外部から来たものをそのまま
使っちゃだめですよという話ですよね、要は。外部から来た変数をより安全に
使うために先に挙げた挙動の制御があり、スーパーグローバル変数の利用があ
り、register_globals = off がある、ということだと思います。
スーパーグローバル変数を使えばすべて解決、なんてこたぁないです。スー
パーグローバル変数のメリットは予期せず破壊されることがない、というだけ
だと思います。汚染されているデータは汚染されているままのはずです。
# それとも 5.2 ではいつの間にか taint モデルが導入されているのかも?
つーか元記事の $includedir パラメータの扱いっつーのは特定のアプリの話
だと思うんだよなぁ。なんか本当にものすごく意味の分からない記事です。
--
ねこ丸