diff --git a/content/blog/2018-08-01-react-v-16-4-2.md b/content/blog/2018-08-01-react-v-16-4-2.md index 7d2d579e0..9c4ed3688 100644 --- a/content/blog/2018-08-01-react-v-16-4-2.md +++ b/content/blog/2018-08-01-react-v-16-4-2.md @@ -1,21 +1,21 @@ --- -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} @@ -23,9 +23,9 @@ 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} @@ -34,9 +34,9 @@ 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} @@ -44,9 +44,9 @@ 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} @@ -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} @@ -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 : @@ -97,25 +97,25 @@ Afin de l'exploiter, l'attaquant devra créer un nom spécifique d'attribut qui let userProvidedData = '>'; ``` -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
``` -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
``` -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 : @@ -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))