Lorsque l'on crée des scripts Tampermonkey ou Greasemonkey [1], on peut se retrouver confronté à un problème de taille : comment accéder aux ressources locales ? Comment lire un fichier ou le modifier ? Les mécanismes de sécurité des navigateurs web ne permettent pas ce genre d'opérations, mais on peut les contourner...
Pour pouvoir exécuter des commandes Shell depuis TamperMonkey ou GreaseMoney, il va nous falloir « ruser ». En effet, les navigateurs web n'autorisent pas l'accès aux ressources locales (et heureusement !). Or, si nous voulons créer un script capable de créer un fichier par exemple, il faut pouvoir passer outre ces restrictions. Pour cela, nous allons créer un petit serveur (par exemple ici, en Python avec Flask) qui sera appelé par notre script JavaScript et qui exécutera la commande, ce qui permettra de contourner les mécanismes de sécurité du navigateur. La seule contrainte sera d'avoir le serveur actif, lorsque l'on exécute notre script Tampermonkey…
Dans la suite de l'article, j'utiliserai Tampermonkey, mais tout fonctionnera exactement de la même façon avec Greasemonkey.
1. Le squelette du serveur
Pour démarrer, nous allons réaliser un squelette de serveur nous permettant de nous assurer que notre solution est viable. Si vous n'avez pas encore...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première