fix: XMLHttpRequestフォームのCSRFトークンチェック条件を修正#6602
Conversation
条件式 `!isXmlHttpRequest() && isTokenValid()` を `!isXmlHttpRequest() || !isTokenValid()` に修正。 対象ファイル: - ClassNameController.php - ProductController.php - PaymentController.php - MailController.php - ProductControllerTest.php - ClassNameControllerTest.php
39dbab7 to
54392b7
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## 4.3 #6602 +/- ##
=========================================
Coverage 78.83% 78.84%
Complexity 6631 6631
=========================================
Files 475 475
Lines 26539 26539
=========================================
+ Hits 20923 20924 +1
+ Misses 5616 5615 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
📝 Walkthroughウォークスルー複数のコントローラーにおけるAJAXリクエストとCSRFトークンのアクセス制御ロジックが変更されました。既存の条件判定を反転させて、XmlHttpRequest確認とトークン検証の両条件をより厳格に強制するようになります。テストも対応するCSRFトークンヘッダーが追加されました。 変更内容
見積もりコード評価労力🎯 2 (Simple) | ⏱️ ~12 分 詩
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
概要(Overview・Refs Issue)
XMLHttpRequestフォームのCSRFトークンチェック条件式に論理的な誤りがあったため修正。
方針(Policy)
既存コードで使用されている推奨パターンに統一しました。
参考: Admin/Order/OrderController.php, Admin/AdminController.php 等で同様のパターンを使用
実装に関する補足(Appendix)
ClassNameController::moveSortNo() については、元のコードで 2重チェックされておりましたので、併せて修正しました。
テスト(Test)
管理画面ログイン状態にて、該当のURLに対して、CSRFトークンなしで画像アップロードできるかテストするスクリプトを実行
修正前 200
修正後 403 AccessDeniedHttpException
相談(Discussion)
マイナーバージョン互換性保持のための制限事項チェックリスト
レビュワー確認項目
Summary by CodeRabbit
バグ修正
テスト