Skip to content

fix(tsa): restreint vraiment le CORS à l'origine configurée - #8

Merged
PhilippeVienne merged 1 commit into
devfrom
fix/cors-per-origin
Sep 13, 2026
Merged

PhilippeVienne merged 1 commit into
devfrom
fix/cors-per-origin

Conversation

@PhilippeVienne

Copy link
Copy Markdown
Contributor

Résumé

allow_origin(HeaderValue) (= AllowOrigin::exact) renvoyait Access-Control-Allow-Origin: <origine configurée> sur toute requête, quelle que soit l'origine réelle de l'appelant — pas une faille directement exploitable (le navigateur compare toujours l'en-tête à sa propre origine), mais pas la restriction par origine documentée non plus. AllowOrigin::list ne reflète l'en-tête que si l'Origin de la requête correspond exactement, et l'omet sinon.

Trouvé en vérifiant manuellement le CORS déployé sur le staging avec une origine non autorisée.

Plan de test

  • Nouveau test : une origine différente ne reçoit pas l'en-tête, même quand CORS est configuré pour une autre origine.
  • CI verte

allow_origin(HeaderValue) (AllowOrigin::exact) renvoyait
Access-Control-Allow-Origin: <origine configurée> sur TOUTE requête, quelle
que soit l'origine réelle de l'appelant — pas une exploitation directe
(le navigateur compare toujours l'en-tête à sa propre origine avant
d'autoriser la lecture), mais une fuite de configuration et pas la vraie
restriction par origine documentée. AllowOrigin::list ne reflète l'en-tête
que si l'Origin de la requête correspond exactement, et l'omet sinon.
Ajoute le test qui aurait dû l'attraper.
Copilot AI lite review requested due to automatic review settings September 13, 2026 08:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The scoped change and regression coverage address the intended CORS behavior.

Pull request overview

Restricts TSA CORS responses to configured origins and adds regression coverage.

Changes:

  • Applies exact request-origin matching.
  • Tests that unauthorized origins receive no CORS header.
File summaries
File Description
crates/oe-httpapi/tests/end_to_end.rs Adds unauthorized-origin CORS coverage.
crates/oe-httpapi/src/lib.rs Applies origin-aware CORS filtering.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@PhilippeVienne
PhilippeVienne merged commit 5a7acf1 into dev Sep 13, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants