> For the complete documentation index, see [llms.txt](https://guide-api-rest.marmicode.fr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide-api-rest.marmicode.fr/securite-des-apis-rest/c.s.r.f..md).

# C.S.R.F.

Cross-Site Request Forgery (ou X.S.R.F.)

![Cross-Site Request Forgery](https://392424868-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LFGxD_EMfiDhYN7-EXe%2F-LFLcDIAKEBzozBrfULS%2F-LFLd8_P-OVBXxOE_A4r%2Fcsrf.png?alt=media\&token=e32c9f6c-01d6-44b9-9ac3-93a4be4803d2)

**Cross-Site Request Forgery** est une attaque *in-the-browser* dont le scénario est le suivant :

1. Un utilisateur *(victime)* doit être authentifié sur l’application vulnérable.<br>
2. L'attaquant doit réussir à **faire visiter une application** qu’il contrôle *(entièrement ou partiellement)* par la victime.<br>
3. Lors de la visite de la victime, **l'attaquant déclenche une opération sur l’application vulnérable** en utilisant implicitement les *credentials* de la victime.\
   *On suppose qu’une requête de type GET ne peut pas déclencher d’opération sensible car autrement il suffirait de rediriger l’utilisateur vers l’URL en question.*<br>
4. Si les règles C.O.R.S. sont désactivées par l’un des moyens décrits dans le chapitre C.O.R.S., l'attaquant peut simplement déclencher une requête POST de son choix à destination de l’application vulnérable en utilisant les *credentials* de la victime.

{% hint style="warning" %}
Si la *whitelist* d'origins n’effectue pas une vérification rigoureuse, l'attaquant pourrait éventuellement contrôler le domaine **http** de l’application vulnérable en ciblant le domaine **https** de l’application vulnérable.
{% endhint %}
