プロジェクト

全般

プロフィール

Bug(バグ) #1161

HTTPS で使用するセッションクッキーに secure 属性がついていない

Kousuke Ebiharaほぼ14年前に追加. 約4年前に更新.

ステータス:
Pending Fixing(修正待ち)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2010-06-13
期日:
進捗率:

0%

3.6 で発生するか:
No
3.8 で発生するか:
Unknown (未調査)

説明

HTTPS で使用するセッションクッキーに secure 属性がついていない。

HTTP 向けのセッションクッキーと HTTPS 向けのセッションクッキー(secure 属性付き)を分けて発行し、 HTTP と HTTPS ページで別々のセッション ID を用いるようにしなければ、 HTTP 通信時に盗聴された Cookie 内のセッション ID を用い、 HTTPS ページに対してセッションハイジャックが可能になってしまう。

See:

履歴

#1 Kousuke Ebiharaほぼ14年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Kousuke Ebihara にセット

#2 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 では最大限に優先度を上げて取り組みましょう。

#3 Rimpei Ogawa13年以上前に更新

  • 3.6 で発生するかNo にセット

#4 Kousuke Ebihara13年以上前に更新

  • 優先度High(高め) から Normal(通常) に変更

#5 kaoru n約4年前に更新

  • 対象バージョンOpenPNE 3.10.x にセット

他の形式にエクスポート: Atom PDF