いつも回答ありがとうございます。
現在、セッションについて勉強しております。
私のローカル環境は、Windows10にWebMatrixを入れており、IIS8.0でPHP5.5.38です。
PHPでは、session_start()
をコールすれば、自動的にセッションIDを発行してくれます。
例えばですが、下記のe89r86p6dg04fumh0lanro3pn5
のように一意の値を割り当ててくれます。
Set-Cookie: PHPSESSID=e89r86p6dg04fumh0lanro3pn5; path=/
ここまでは、理解しております。
このセッションIDが安全なのか調べていたら、下記のサイトのようにデフォルトの「MD5」は安全ではないので、変更した方がよいとの記述がありました。
セッションIDはMD5でなくSHA384にすべきです。
PHPを初期設定の状態で、セッションを使用すると、セッションIDは、「MD5」のアルゴリズムを使用して生成されます。
MD5は、「128bit」のハッシュ値を生成することが出来ますが、セキュリティ的には心もとないので、セッションを使用するのであれば、「PHP.ini」の設定を見なおす必要があります!
php.ini
またはini_set
でsession.hash_function
を設定することで、アルゴリズムの変更が可能かと存じます。
- PHP5.3.0未満なら
SHA1(160bit)
へ変更可 - PHP5.3.0以降なら
SHA256(256bit)
またはSHA512(512bit)
などへ変更可
私の環境でphpinfoを実行してsession.hash_functionの項目を確認したところ0
と記載されておりますので、MD5(128bit)が使われているかと存じます。
ここでクエスチョンです。
■クエスチョン1
上述したサイトの指摘通り、デフォルトのセッションID(MD5)を使用するのは危険でしょうか?
session.hash_functionの変更は、必須と考えた方がよろしいでしょうか?
■クエスチョン2
PHPマニュアルのsession.hash_functionには下記のようにPHP7.1.0で削除されたとの記載があります。
どのような理由で削除されたのでしょうか?
注意:
この設定は PHP 5 で導入されました。また、PHP 7.1.0 で削除されました。
ご存知の方いれば、教えてくださいm(__)m
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/18 01:04 編集