[Security] Aucune protection CSRF #39

Closed
opened 2026-08-05 15:42:15 -04:00 by NixCyRy · 0 comments
NixCyRy commented 2026-08-05 15:42:15 -04:00 (Migrated from github.com)

Problème

Aucune protection CSRF (Cross-Site Request Forgery) n'est visible dans le code. Tant que le JWT reste en localStorage (header Authorization), le CSRF n'est pas exploitable car les requêtes cross-origin ne peuvent pas ajouter ce header.

Cependant, si le JWT migre vers un cookie HttpOnly (voir issue séparée), le CSRF devient immédiatement un risque.

Solution recommandée

Implémenter CSRF protection (double-submit cookie ou synchronizer token pattern):

  • Flask-WTF ou flask-csrf pour le backend
  • Token CSRF dans un cookie séparé (SameSite=Strict réduit aussi le risque)
  • Header X-CSRF-Token sur toutes les requêtes mutatives depuis le frontend

Priorité

P2-medium — non bloquant tant que JWT en localStorage, mais bloquant si migration vers cookie HttpOnly.

## Problème Aucune protection CSRF (Cross-Site Request Forgery) n'est visible dans le code. Tant que le JWT reste en `localStorage` (header `Authorization`), le CSRF n'est pas exploitable car les requêtes cross-origin ne peuvent pas ajouter ce header. **Cependant**, si le JWT migre vers un cookie HttpOnly (voir issue séparée), le CSRF devient immédiatement un risque. ## Solution recommandée Implémenter CSRF protection (double-submit cookie ou synchronizer token pattern): - `Flask-WTF` ou `flask-csrf` pour le backend - Token CSRF dans un cookie séparé (`SameSite=Strict` réduit aussi le risque) - Header `X-CSRF-Token` sur toutes les requêtes mutatives depuis le frontend ## Priorité P2-medium — non bloquant tant que JWT en localStorage, mais **bloquant si migration vers cookie HttpOnly**.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SlopVibe-org/nutri-food#39
No description provided.