ます’s Blog - どうでもいい記事100選

どうでもいい記事100選

File-Upload $GLOBALS Overwrite Vulnerability

なんか色々と騒ぎになっているようなんですが()。
(外でPEARを使ってるシステムは多そうだから)確かに影響範囲が大きいと思うんだけど、これって本当に最悪なのかなぁ。。。と、不謹慎ですが思っています。
そういう認識だったので昨日は特に気にしていませんでした。というのも、

  • register_globalsはOFFにする(結果的に同じ状態になるような関数も利用しない)
  • safe_modeは利用しない(初めからOFF)
  • PEARを初めとする各種フレームワークは利用しない(全て自前)
  • $GLOBALS配列や$_REQUEST配列は利用しない
  • $_GET/$_POST/$_COKIE/$_ENV/$_SERVER配列は関数を経由してから利用する(直接利用しない)
  • eval関数は利用しない
  • PHP本体が提供しているSESSION機構は利用しない(自前で実装)
  • allow_url_fopenの機能は利用しない
  • 外部入力を利用する場合、制御コードは(改行コード以外)基本的に全て削除
  • 関数の引数や外部引数のチェックは厳密に行う

という方針で(個人的には)ずっとやってきてたので、この件は自分自身に影響あるのかなぁ。。。?と疑問を感じています。
認識が間違っていたら「お前、何を言ってるんだ。勘違いしてんなよっ!」と指摘して頂きたいのですが。
勿論、これだけをやっていればOK!という訳ではなく(上に上げたのは最低限行うべき事で)、XSSSQLインジェクションを筆頭とする各種攻撃への対処等も考慮しています。
$GLOBALS配列が汚染された時、グローバル変数や(関数内での)ローカル変数が初期化したにも関わらず汚染されるってのであれば事は甚大かもしれないけど。。。簡単なexploit codeがあれば確認しやすいんだけどなぁ。
確認した限りでは$GLOBALS配列を利用しない限り大丈夫っぽいけど。
というか、スーパーグローバル配列に値を代入するのって普通に皆やってる事なのかな?
個人的には参照Onlyなんだけど。