Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SameSite cookie support #4519

Merged
merged 8 commits into from May 19, 2020
Merged

SameSite cookie support #4519

merged 8 commits into from May 19, 2020

Conversation

nanasess
Copy link
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 changed the title [WIP] SameSite cookie support SameSite cookie support Apr 21, 2020
@kiy0taka
Copy link
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