操作
Bug(バグ) #1161
未完了HTTPS で使用するセッションクッキーに secure 属性がついていない
開始日:
2010-06-13
期日:
進捗率:
0%
予定工数:
3.6 で発生するか:
No
3.8 で発生するか:
Unknown (未調査)
説明
HTTPS で使用するセッションクッキーに secure 属性がついていない。
HTTP 向けのセッションクッキーと HTTPS 向けのセッションクッキー(secure 属性付き)を分けて発行し、 HTTP と HTTPS ページで別々のセッション ID を用いるようにしなければ、 HTTP 通信時に盗聴された Cookie 内のセッション ID を用い、 HTTPS ページに対してセッションハイジャックが可能になってしまう。
See:Kousuke Ebihara さんが14年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Kousuke Ebihara にセット
Kousuke Ebihara さんが14年以上前に更新
- ステータス を Accepted(着手) から Pending Fixing(修正待ち) に変更
- 担当者 を削除 (
Kousuke Ebihara) - 対象バージョン を削除 (
OpenPNE 3.6beta1)
簡単なスクリプト http://gist.github.com/476143 で確認してみましたが、 HTTP と HTTPS でセッション ID を分けているはずなのに、レスポンスヘッダが以下のようになってしまいました。
Set-Cookie: _secure=secure-session-id; path=/ Set-Cookie: _normal=secure-session-id; path=/
なぜこのような挙動になってしまうのかはきちんと調査しなければならないところですが、残念ながら 3.6beta1 リリースまでにそのための時間を満足にとることができない状況です。
セッションハンドラをファイル以外にすれば、 OpenPNE 側で制御できる範囲が広がるので、サーバへのセッションデータの書き込みは HTTP と HTTPS を分けて保存するように自前でハンドリングするという方法が最悪取れなくもありません(が、よっぽどのことがない限りは現状通り PHP のセッションハンドラに乗っかるべきです)。しかし、これも、現在のデフォルトのセッションハンドラがファイルになっている以上、このタイミングで安易に変えるということができません。
ひとまず 3.6 では見送りとさせてください。本件について、 3.7 では最大限に優先度を上げて取り組みましょう。
操作