PHP(〜7.0)で発行されるセッションIDは、デフォルト設定のままだと推測可能という論文が公表されているようだ。

今回は、より安全な乱数を元にセッションIDを生成するよう改善する方法を紹介する。

php.iniファイルに設定を追加する

php.iniファイル内に以下の設定を追加する。

[Session]
session.entropy_file = /dev/urandom
session.entropy_length = 32

まず、2行目で指定した/dev/urandomは、ほとんどのUnix系OSで実装されている乱数生成器で、世界中の研究家から研究されて大きな問題はないとされているので安心して使うことができる。

3行目のsession.entropy_lengthは、直接セッションIDの長さを指定するものではないが、ややこしいのでとりあえず32を指定する、と覚えておけば良い。