Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-Authored-By: Christophe Porteneuve <tdd@tddsworld.com>
  • Loading branch information
vnsteven and tdd committed Jan 26, 2020
1 parent 23b2ec6 commit 3e2d25a
Showing 1 changed file with 29 additions and 29 deletions.
58 changes: 29 additions & 29 deletions content/blog/2018-08-01-react-v-16-4-2.md
@@ -1,31 +1,31 @@
---
title: "React v16.4.2 : Correctif d'une faille côté serveur"
title: "React v16.4.2 : correctif d'une faille côté serveur"
author: [gaearon]
---

Nous avons détecté une faille mineure pouvant affecter certaines applis qui utilisent ReactDOMServer. Afin que vous puissiez mettre à niveau React sans problèmes, nous mettons en place un correctif pour chaque version de React concernée. Continuez à lire pour plus de détails.
Nous avons détecté une faille mineure pouvant affecter certaines applis qui utilisent ReactDOMServer. Afin que vous puissiez mettre à niveau React sans problème, nous mettons en place un correctif pour chaque version mineure de React concernée. Continuez à lire pour en apprendre davantage.

## Brève description {#short-description}
## En bref {#short-description}

Aujourd'hui, nous lançons le correctif de la faille dans l'implémentation de `react-dom/server`. Celui-ci a été présenté avec la version 16.0.0 et est présent sur toutes les versions jusqu'à ce jour.
Aujourd'hui, nous publions le correctif d’une faille que nous avons découverte dans l'implémentation de `react-dom/server`. Elle est arrivée avec la version 16.0.0 et était présente sur toutes les versions jusqu'à ce jour.

Cette faille **ne s'applique qu'à certaines applis React rendues côté serveur.** Elle ne concerne pas les applis purement rendues côté client. De plus, nous nous attendons à ce que cette faille ne s'applique pas à la plupart des applis rendues côté serveur. Néanmoins, nous vous recommandons tout de même de suivre les mesures d'atténuation dans les plus brefs délais.
Cette faille **ne s'applique qu'à certaines applis React rendues côté serveur.** Elle ne concerne pas les applis uniquement rendues côté client. De plus, nous nous attendons à ce que la plupart des applis rendues côté serveur ne présentent pas l’approche vulnérable décrite ci-après. Quoi qu’il en soit, nous vous recommandons tout de même de prendre ces mesures de protection dans les plus brefs délais.

Lors de notre enquête, nous avons trouvé des failles similaires sur d'autres bibliothèques front-end populaires. Nous avons donc planifié ensemble la sortie de cette version avec celles de [Vue](https://github.com/vuejs/vue/releases/tag/v2.5.17) et de [Preact](https://github.com/developit/preact-render-to-string/releases/tag/3.7.1), qui résolvent le même problème. Le numéro de suivi de cette faille est le `CVE-2018-6341`.
Lors de notre enquête, nous avons trouvé des failles similaires dans d'autres bibliothèques front-end populaires. Nous avons donc coordonné la sortie de cette version avec celles de [Vue](https://github.com/vuejs/vue/releases/tag/v2.5.17) et de [Preact](https://github.com/developit/preact-render-to-string/releases/tag/3.7.1), qui résolvent le même problème. Le numéro de suivi de cette faille est le `CVE-2018-6341`.

## Mesures d'atténuation {#mitigation}
## Mesures de protection

**Nous avons préparé une version avec un correctif pour chaque version mineure concernée.**
**Nous avons préparé une version de correctif pour chaque version mineure concernée.**

### 16.0.x {#160x}

Si vous utilisez `react-dom/server` avec cette version :

- `react-dom@16.0.0`

Mettez à jour cette version à la place :
Mettez à jour vers cette version :

`react-dom@16.0.1` **(contient la mesure d'atténuation)**
`react-dom@16.0.1` **(contient la mesure de protection)**

### 16.1.x {#161x}

Expand All @@ -34,19 +34,19 @@ Si vous utilisez `react-dom/server` avec une de ces versions :
- `react-dom@16.1.0`
- `react-dom@16.1.1`

Mettez à jour cette version à la place :
Mettez à jour vers cette version :

- `react-dom@16.1.2` **(contient la mesure d'atténuation)**
`react-dom@16.1.2` **(contient la mesure de protection)**

### 16.2.x {#162x}

Si vous utilisez `react-dom/server` avec cette version :

- `react-dom@16.2.0`

Mettez à jour cette version à la place :
Mettez à jour vers cette version :

- `react-dom@16.2.1` **(contient la mesure d'atténuation)**
`react-dom@16.2.1` **(contient la mesure de protection)**

### 16.3.x {#163x}

Expand All @@ -56,9 +56,9 @@ Si vous utilisez `react-dom/server` avec une de ces versions :
- `react-dom@16.3.1`
- `react-dom@16.3.2`

Mettez à jour cette version à la place :
Mettez à jour vers cette version :

- `react-dom@16.3.3` **(contient la mesure d'atténuation)**
`react-dom@16.3.3` **(contient la mesure de protection)**

### 16.4.x {#164x}

Expand All @@ -67,20 +67,20 @@ Si vous utilisez `react-dom/server` avec une de ces versions :
- `react-dom@16.4.0`
- `react-dom@16.4.1`

Mettez à jour cette version à la place :
Mettez à jour vers cette version :

- `react-dom@16.4.2` **(contient la mesure d'atténuation)**
`react-dom@16.4.2` **(contient la mesure de protection)**

Si vous utilisez une version plus récente de `react-dom`, aucune action n'est requise.

À noter que seul le paquet `react-dom` a besoin d'être mis à jour.
Remarquez que seul le paquet `react-dom` a besoin dêtre mis à jour.

## Description détaillée {#detailed-description}

Votre application ne peut être concernée par cette faille uniquement si ces deux conditions sont réunies :
Votre appli n’est potentiellement concernée par cette faille que si ces deux conditions sont réunies :

* Le rendu HTML de votre appli **utilise [ReactDOMServer API](/docs/react-dom-server.html)**, et
* Votre appli **inclut le nom d'un attribut fourni par l'utilisateur dans une balise HTML.**
* Le rendu HTML de votre appli **utilise [l’API ReactDOMServer](/docs/react-dom-server.html)**, et
* Votre appli **inclut un nom d'attribut fourni par l'utilisateur dans une balise HTML.**

Plus précisément, le schéma de la faille ressemble à ceci :

Expand All @@ -97,25 +97,25 @@ Afin de l'exploiter, l'attaquant devra créer un nom spécifique d'attribut qui
let userProvidedData = '></div><script>alert("salut")</script>';
```

Sur les versions vulnérables de `react-dom/server`, le résultat laisse à l'attaquant la possibilité d'injecter un balisage arbitraire :
Avec les versions vulnérables de `react-dom/server`, le résultat permet à l'attaquant d'injecter un balisage quelconque :

```html
<div ></div><script>alert("hi")</script>
```

Sur les versions postérieures au [correctif](https://github.com/facebook/react/pull/13302) (et avant qu'il ne soit présenté), les attributs ayant des noms invalides sont ignorés :
Avec les versions postérieures au [correctif](https://github.com/facebook/react/pull/13302) (et celles avant que la faille n’existe), les attributs ayant des noms invalides sont ignorés :

```html
<div></div>
```

Vous pouvez aussi voir une alerte concernant un nom invalide d'attribut.
Vous y verriez aussi un avertissement de nom d'attribut invalide.

Veuillez noter qu'en pratique, **nous nous attendons à ce que les noms d'attribut basés sur la saisie de l'utilisateur soient très rares.**
Remarquez que **nous nous attendons à ce que les noms d'attributs basés sur la saisie de l'utilisateur soient très rares en pratique.** Ils ne correspondent à aucun cas d'usage pratique, et présentent d’autres risques sécuritaires contre lesquels React ne pourra pas vous protéger.

## Installation {#installation}

React v16.4.2 est disponible sur le registre npm.
React v16.4.2 est disponible sur le référentiel npm.

Pour installer React 16 avec Yarn, exécutez :

Expand All @@ -142,6 +142,6 @@ Pour plus de détails sur l'installation, veuillez consulter ces [instructions](

### React DOM Server {#react-dom-server}

* Correction d'une potentielle faille XSS quand l'attaquant contrôle le nom d'un attribut (`CVE-2018-6341`). Ce correctif est disponible sur `react-dom@16.4.2`, ainsi que sur les précédentes versions mineures concernées par la faille : `react-dom@16.0.1`, `react-dom@16.1.2`, `react-dom@16.2.1`, et `react-dom@16.3.3`. ([@gaearon](https://github.com/gaearon) sur [#13302](https://github.com/facebook/react/pull/13302))
* Correction d'une potentielle faille XSS quand l'attaquant contrôle le nom d'un attribut (`CVE-2018-6341`). Ce correctif est disponible sur `react-dom@16.4.2`, ainsi que sur les précédentes versions mineures concernées par la faille : `react-dom@16.0.1`, `react-dom@16.1.2`, `react-dom@16.2.1`, et `react-dom@16.3.3`. ([@gaearon](https://github.com/gaearon) dans [#13302](https://github.com/facebook/react/pull/13302))

* Correction d'un plantage du moteur de rendu lorsqu'un attribut est appelé `hasOwnProperty`. Ce correctif est seulement disponible sur `react-dom@16.4.2`. ([@gaearon](https://github.com/gaearon) sur [#13303](https://github.com/facebook/react/pull/13303))
* Correction d'un plantage du moteur de rendu côté serveur lorsqu'un attribut est nommé `hasOwnProperty`. Ce correctif est seulement disponible sur `react-dom@16.4.2`. ([@gaearon](https://github.com/gaearon) dans [#13303](https://github.com/facebook/react/pull/13303))

0 comments on commit 3e2d25a

Please sign in to comment.