Skip to content

Commit

Permalink
đź“™ Add CSRF variables to documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Lymkwi committed Oct 9, 2023
1 parent ccdfe0f commit 53f76cd
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion docs/manuel/src/02-structure/projet/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ aléatoire unique et connue seulement de la personne qui déploie le site en
production. Elle est mise dans `DJANGO_KEY`, et piochée dans la variable
d'environnement `DJANGO_SECRET`.

## Allowed Hosts, URLs et CORS
## Allowed Hosts, URLs, CSRF et CORS

Le web est un système compliqué qui repose sur l'intercommunication de plein
d'acteur⋅ices différent⋅es. Cependant, autoriser des communications de partout
Expand All @@ -46,6 +46,21 @@ au frontend de nous passer des informations d'authentification
Enfin, on indique Ă  Django quel module contient la liste des URLs de l'API dans
`ROOT_URLCONF`.

Ensuite viennent les CSRF, qui permettent d'Ă©viter les attaques de *Cross-Site
Request Forgery*. C'est un mécanisme via lequel le navigateur va obtenir un
cookie via une requĂŞte Ă  un point d'API, puis l'utiliser dans un appel pour
prouver sa bonne foi.

On peut contrôler quels noms de domaines sont autorisés à effectuer ces requêtes
de CSRF, et nous avons notamment besoin que le frontend y soit autorisé. On a du
coup:
```python
CSRF_TRUSTED_ORIGINS = [
"https://api." + getenv("WEBSITE_HOST", "localhost"),

This comment has been minimized.

Copy link
@ShiroUsagi-san

ShiroUsagi-san Oct 9, 2023

Contributor

The http schema is missing

This comment has been minimized.

Copy link
@Lymkwi

Lymkwi Oct 16, 2023

Author Collaborator

Since it depends on whether or not the environment is in production, I'd prefer specifying that we do HTTP for dev, and HTTPS for production (at least for now). Would that be good?

"https://" + getenv("WEBSITE_HOST", "localhost"),
]
```

## Applications & Middlewares

Django est un framework explosé en de nombreux petits morceaux. On les réunit
Expand Down

0 comments on commit 53f76cd

Please sign in to comment.