Search

Google clarifie l’e-mail SharedArrayBuffer


Le centre de recherche de Google a publié une clarification sur un message déroutant envoyé la semaine dernière par la console de recherche Google concernant les problèmes de SharedArrayBuffer. Google a également mis à jour son guide pour l’activation de l’isolement d’origine croisée.

Qu’est-ce qu’un SharedArrayBuffer?

SharedArrayBuffer, en termes simples, sont les méthodes de fonctionnement JavaScript en coulisse qui les aident à accomplir leurs tâches de manière efficace.

Selon la documentation des travailleurs Web de Mozilla:

« Les Web Workers sont un moyen simple pour le contenu Web d’exécuter des scripts dans des threads d’arrière-plan. »

Et selon une autre page de développeur Mozilla:

«Avec SharedArrayBuffer, les deux travailleurs Web, les deux threads, peuvent écrire et lire des données à partir du même bloc de mémoire.»

La mémoire est importante parce que JavaScript fonctionne avec la mémoire du navigateur et si la page ne la gère pas bien, cela peut entraîner des conséquences inattendues comme un gonflement de la mémoire.

Publicité

Continuer la lecture ci-dessous

La page des développeurs Mozilla explique en outre:

«Les ArrayBuffers vous permettent de gérer manuellement certaines de vos données, même si vous travaillez en JavaScript, qui dispose d’une gestion automatique de la mémoire.

… Dans une application typique, le travail est entièrement pris en charge par une seule personne – le fil conducteur.

… Et dans certaines circonstances, ArrayBuffers peut réduire la quantité de travail que le thread principal doit effectuer. »

Il poursuit en expliquant que parfois, il ne suffit pas de diviser le travail et c’est là que les travailleurs Web mentionnés ci-dessus entrent en jeu, partageant le même morceau de mémoire.

Martin Splitt de Google l’a résumé comme ceci en 2017 lorsque SharedArrayBuffers était une fonctionnalité à venir:

« JavaScript est monothread et les scripts de longue durée font que la page ne répond pas

Les Web Workers permettent d’exécuter JavaScript dans des threads séparés, en communiquant avec le thread principal à l’aide de messages.

Les messages qui transfèrent une grande quantité de données dans TypedArrays ou ArrayBuffers entraînent un coût de mémoire important en raison du clonage des données

… SharedArrayBuffers est une fonctionnalité à venir, permettant le partage des données entre les threads. »

Publicité

Continuer la lecture ci-dessous

Pourquoi vous avez reçu le message SharedArrayBuffer

Le blog Search Central de Google explique que la raison pour laquelle les éditeurs ont reçu le message «mystérieux» était que quelque chose sur leurs pages Web utilise SharedArrayBuffers, qui est une astuce de codage pour accélérer les processus JavaScript.

Selon Google:

« L’utilisation peut être due à des cadres, des bibliothèques ou d’autres contenus tiers inclus dans votre site Web. »

Pourquoi SharedArrayBuffer (SAB) est-il un problème?

Les SAB sont devenus problématiques après la découverte des vulnérabilités Spectre et Meltdown.

Ces vulnérabilités affectent toutes les unités de traitement informatique (CPU) et permettent à un attaquant de lire ce qui se trouve dans la mémoire. L’attaque affecte tous les périphériques informatiques, y compris les périphériques Internet des objets.

Chrome a initialement suspendu l’utilisation des SAB, puis les a réautorisés après une solution de contournement qui a essentiellement isolé les processus.

Chrome et Firefox changent la façon dont les SharedArrayBuffers sont gérés

La raison de cet e-mail était une tentative de faire connaître la manière dont Chrome gérera SharedArrayBuffers et d’aider les éditeurs à intégrer des processus qui rendront leurs sites et les visiteurs de leur site plus sûrs.

Fin mai 2021, Chrome 91 sera publié avec une nouvelle restriction qui fournira une défense plus robuste contre les vulnérabilités Spectre et Meltdown.

« Origine croisée»Est une référence à des ressources (comme des images, des fichiers CSS et JavaScript) qui proviennent de l’extérieur d’un site.

Donc, ce qui se passe avec Chrome 91 et ce dont Google a besoin, c’est de définir des politiques de sécurité sur les ressources et de verrouiller essentiellement ce qui est autorisé selon les politiques de Chrome (et de Firefox) pour protéger les visiteurs du site et les éditeurs contre les vulnérabilités de Spectre.

C’est bon pour les visiteurs du site, mais cela pourrait être mauvais pour les éditeurs de site qui utilisent des objets SharedArrayBuffer sans isolation d’origine croisée.

Selon la clarification de Google (faisant référence à la version 91 de Chrome):

«… L’isolation des origines croisées a été normalisée afin d’activer en toute sécurité l’objet SharedArrayBuffer. À partir de la version 91, dont la sortie est prévue pour fin mai 2021, Chrome bloquera l’objet SharedArrayBuffer derrière l’isolation des origines croisées.

… Après la sortie de Chrome 91, l’objet SharedArrayBuffer sans isolation d’origine croisée ne sera plus fonctionnel. « 

Publicité

Continuer la lecture ci-dessous

Ce que vous devez faire pour résoudre le problème de SharedArrayBuffer

Il y a deux tâches à accomplir.

  1. Identifiez l’utilisation de SAB sur votre site Web.
  2. Corriger ou supprimer la fonctionnalité

Identification de l’utilisation du SAB

Google recommande ces étapes pour identifier SharedArrayBuffers:

«Vous avez deux options:

Utilisez Chrome DevTools et inspectez les pages importantes.
(Avancé) Utilisez l’API de création de rapports pour envoyer des rapports d’obsolescence à un point de terminaison de rapport.
Découvrez comment utiliser les approches ci-dessus sur Déterminez où dans votre site Web SharedArrayBuffer est utilisé. « 

Le guide de Google sur l’isolation des origines croisées propose des instructions sur l’utilisation des outils de développement Chrome pour identifier l’utilisation de SharedArrayBuffers.

  1. «Ouvrez Chrome DevTools sur la page que vous pensez utiliser SharedArrayBuffer.
  2. Sélectionnez le panneau de la console.
  3. Si la page utilise SharedArrayBuffer, le message suivant s’affiche:
    [Deprecation] SharedArrayBuffer will require cross-origin isolation as of M91, around May 2021. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details. common-bundle.js:535
  4. Le nom de fichier et le numéro de ligne à la fin du message (par exemple, common-bundle.js: 535) indiquent d’où vient le SharedArrayBuffer. S’il s’agit d’une bibliothèque tierce, contactez le développeur pour résoudre le problème. S’il est mis en œuvre dans le cadre de votre site Web, suivez le guide ci-dessous pour activer l’isolement d’origine croisée. « 

Publicité

Continuer la lecture ci-dessous

Lien: Comment activer l’isolement d’origine croisée

Beaucoup à emporter

C’est beaucoup à comprendre car il y a une quantité importante de jargon de développement et d’acronymes à mémoriser.

Les différentes pages du développeur sont difficiles à comprendre car elles ont tendance à définir plusieurs acronymes au début des articles de 2000 mots puis se réfèrent exclusivement aux acronymes sans autre explication tout au long de l’article, comme si le lecteur pouvait facilement retenir la signification de COEP ou COOPÉRATIVE.

Citations

Clarification officielle de Google:
Clarifications sur le message d’objet SharedArrayBuffer

Ressource d’informations de base sur l’en-tête de sécurité: ScottHelme.co.uk
COEP COOP CORP CORS CORB – CRAP C’est beaucoup de nouveautés!

Page des développeurs Mozilla sur ce que sont SharedArrayBuffers:
Une introduction de bande dessinée aux ArrayBuffers et SharedArrayBuffers

Page des développeurs Google sur l’analyse de l’isolation des origines croisées
Un guide pour analyser l’isolement des origines croisées

Page des développeurs Google sur l’activation de l’isolement des origines croisées
Comment activer l’isolement d’origine croisée

Auteur/autrice

Partager:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles Similaires