PHPは年々進化していて、それでいて過去のバージョンとの互換性もほぼ維持されています。しかしネットワークが進化する中で従来は使われていた設定が非推奨になっていることも少なくありません。 もしかするとWebサーバのPHPの設定が危険な状態になっているかも知れませんよ。それをチェックできるのがiniscanです。 iniscanはcomposerを使ってインストールします。まずはcomposer.jsonを下記の内容で作成します。

$ cat composer.json 
{
    "require": {
        "psecio/iniscan": "dev-master"
    }
}

そしてインストールを実行します。

$ sudo composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing symfony/console (v2.3.6)
    Downloading: 100%         

  - Installing psecio/iniscan (dev-master 5118bc9)
    Cloning 5118bc99ae300f098440881afbbcdc529a621ad8

symfony/console suggests installing symfony/event-dispatcher ()
Writing lock file
Generating autoload files

完了しました。実際の使い方は簡単で、scanオプションにphp.iniを渡すだけです。

vendor/bin/iniscan scan --path=/path/to/php.ini

こんな感じです。そして実際に実行してみた結果が次のようになります。

実行結果

localhostの設定で、他のソフトウェアをインストールするためとは言えウォーニングやエラーが散見されます。この辺りは攻撃者の的にされやすいと思うので早めの対応が必要になるでしょう。 設定をデフォルトから変えていないとしても、バージョンが上がっていく中でデフォルト値が変更されている可能性があります。それらを認識した上でサーバの設定に反映していかないと思わぬ被害に遭う可能性があります。 PHPは恐らく世界で最も普及しているWeb系のプログラミング言語だと思います。それだけのシェアがあると攻撃者のターゲットにもされやすくなります。適切にチェックして、早めに修正するようにしましょう。 iniscanはPHP製、MIT Licenseのオープンソース・ソフトウェアです。 psecio/iniscan