作者: ねこ丸
日時: 2007/6/6(18:44)
  ねこ丸です。

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 パラメータの扱いっつーのは特定のアプリの話
だと思うんだよなぁ。なんか本当にものすごく意味の分からない記事です。

--
    ねこ丸