Sécurité du JS injecté — ce qu'un snippet peut vraiment faire
Le JavaScript injecté est puissant — il s'exécute avec les pleins droits de la page que vous visitez. Cela le rend utile et, en même temps, digne d'être compris. Cet article explique ce qu'un snippet peut vraiment faire et à qui faire confiance.
Ce que le JS injecté peut faire
Le code d'une règle s'exécute dans le contexte de la page — il a le même accès que les propres scripts de la page :
- Lit et modifie tout le DOM — y compris les champs de formulaire et leurs valeurs.
- Lit les cookies disponibles pour le JS et le
localStoragede la page. - Envoie des requêtes
fetchau nom de la page (dans les limites de sa CSP).
Ce sont exactement les capacités qui rendent les règles utiles. Mais cela signifie qu'exécuter le snippet de quelqu'un d'autre exécute le code de quelqu'un d'autre avec ces droits.
Ce que le JS injecté ne peut pas faire
- Il ne lit pas les pages d'autres domaines — la politique same-origin de la page s'applique à lui.
- Il n'atteint pas les fichiers de votre disque ni les autres onglets.
- Il ne lit pas les cookies marqués
HttpOnly— ceux-ci sont invisibles pour le JavaScript.
Le principe de confiance — lire avant de coller
Lors de l'import d'un bundle partagé, JustZix affiche un avertissement s'il contient du JavaScript — et à juste titre. Une règle CSS, au pire, gâchera l'apparence. Une règle JS peut lire ce que vous tapez dans un formulaire. Avant d'exécuter le snippet de quelqu'un d'autre :
- Lisez-le. Un snippet court et lisible s'explique de lui-même.
- Méfiez-vous du code obfusqué — noms de variables aléatoires, longues chaînes base64,
eval. Un snippet honnête n'a aucune raison de se cacher. - Méfiez-vous d'un
fetchenvoyant des données vers une adresse étrangère — c'est une exfiltration potentielle.
JustZix lui-même n'espionne pas
L'extension n'a pas de télémétrie — elle ne signale pas quelles pages vous visitez ni ce que vous injectez. Le backend ne voit que le hachage de la clé de synchro et les bundles de règles chiffrés. Le risque ne réside pas dans l'outil — il réside dans le code que vous choisissez d'exécuter vous-même. Alors écrivez les règles vous-même, ou n'exécutez que celles que vous comprenez.
À voir aussi
- Comment fonctionne la synchro — ce que le backend voit et ne voit pas
- Injection et CSP — les limites du code injecté
- JustZix pour une équipe QA — partager avec soin
Installez JustZix — et n'exécutez que du code en lequel vous avez confiance.
Notez cet article
Aucune note — soyez le premier.