Skip to content

SameSite cookie support#4519

Merged
kiy0taka merged 8 commits intoEC-CUBE:4.0from
nanasess:samesite-none-compat
May 19, 2020
Merged

SameSite cookie support#4519
kiy0taka merged 8 commits intoEC-CUBE:4.0from
nanasess:samesite-none-compat

Conversation

@nanasess
Copy link
Copy Markdown
Contributor

@nanasess nanasess commented Apr 17, 2020

概要(Overview・Refs Issue)

SameSite cookie 対応

方針(Policy)

  • SameSite=None に対応する
  • iOS12 など、非対応の UA は除外する
  • PHP7.3 での setcookie() 関数の変更に対応する
  • Symfony3.4 における SameSite cookie 対応の変更を吸収する
  • 開発環境など、 非SSL環境では secure 属性を付与しない

実装に関する補足(Appendix)

  • Symfony の NativeFileSessionHandler は、 ini_get でセッション関連の設定を取得しているため、 framework.yaml で設定せずに ini_set で設定可能
  • ini_set('session.cookie_path', '/; SameSite=None'); と設定した場合は PHP7.3 の setcookie 関数仕様変更の影響を受けない
  • 上記を対策した SessionHandler を自前で用意した

テスト(Test)

関連(Refs)

相談(Discussion)

  • 追試求む
  • 決済プラグインでの動作確認
  • EC-CUBE4.0.3 以前のバージョンへのパッチ
    • skorp/detect-incompatible-samesite-useragents を入れて、同様の修正をすれば動くはず
  • Symfony3.4.38以降の対応(SameSite cookie に関する仕様変更が入っているため)
    • SessionHandler 自体の互換性は担保しているので、AbstractSessionHandler の不具合修正のみ追従していけば問題ないはず
  • RememberMe も対応するためには、 Symfony\Component\HttpFoundation\Response の修正が必要になるため、現状対応していない
    • Symfony3.4.38以降で対応可能になると思われる

マイナーバージョン互換性保持のための制限事項チェックリスト

  • 既存機能の仕様変更
  • フックポイントの呼び出しタイミングの変更
  • フックポイントのパラメータの削除・データ型の変更
  • twigファイルに渡しているパラメータの削除・データ型の変更
  • Serviceクラスの公開関数の、引数の削除・データ型の変更
  • 入出力ファイル(CSVなど)のフォーマット変更

レビュワー確認項目

  • 動作確認
  • コードレビュー
  • E2E/Unit テスト確認(テストの追加・変更が必要かどうか)
  • 互換性が保持されているか
  • セキュリティ上の問題がないか

@nanasess nanasess changed the title [WIP] SameSite cookie 対応 [WIP] SameSite cookie support Apr 17, 2020
@okazy okazy added this to the 4.0.x milestone Apr 20, 2020
@nanasess nanasess force-pushed the samesite-none-compat branch from 54889b8 to 61d51bb Compare April 21, 2020 05:19
@nanasess nanasess changed the title [WIP] SameSite cookie support SameSite cookie support Apr 21, 2020
@nanasess nanasess force-pushed the samesite-none-compat branch from 61d51bb to 276f3df Compare April 22, 2020 01:39
@nanasess nanasess force-pushed the samesite-none-compat branch from 276f3df to 25bb619 Compare April 22, 2020 02:07
@kiy0taka
Copy link
Copy Markdown
Contributor

ありがとうございました。決済プラグインでも動作を確認できました。

@okazy okazy modified the milestones: 4.0.x, 4.0.4 May 22, 2020
@okazy okazy added the affected:外部仕様 外部仕様の変更や追加 label Jun 16, 2020
@nanasess nanasess deleted the samesite-none-compat branch October 3, 2022 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

affected:外部仕様 外部仕様の変更や追加

Projects

None yet

3 participants