2014.09.05 システム
PHPのセッションIDのアルゴリズム設定について(その2)
システムエンジニアの大貫です。
前回、PHPのセッションID生成のアルゴリズムの設定について触れましたので、さらに深くセッションIDについて、調べてみました。
するとPHPのセッションIDとは、「現在時刻」や「IPアドレス」、「線形合同法による疑似乱数」のみを使用して作成しているので、「完全に推測不可能では無い」との事でした。
そこで、前回に引き続き「php.ini」の設定を見なおす必要があります!
「session.entropy_file」を設定することで、上記のセッションID生成時キーに加えて、指定したファイルの値をキーとして追加出来るそうです。
そして、「session.entropy_length」で、「session.entropy_file」から読み取るバイト数を指定します。
上記の内容を踏まえて、以下のように設定を行うと、「/dev/urandom」で生成した擬似乱数を32バイト分、PHPのセッションIDを生成する際のキーとして追加する事ができるので、
よりセキュリティ性の高い推測不可能なセッションIDになります。
【セッションID生成時の乱数キーの設定】
session.entropy_file = /dev/urandom
session.entropy_length = 32