Greasy Forkpermet l'utilisation de code externe dans des cas spécifiques. Tout script contenant du code externe en dehors de ce qui est autorisé est susceptible d'être supprimé. Si vous trouvez un script qui enfreignent ces règles, veuillez le signaler.
Notez que ces règles ne s'appliquent qu'au code exécutable externe. Le chargement de code non exécutable, par exemple JSON ou CSS, n'ont pas restrictions.
Raisonnement
Les scripts utilisateur ont la capacité technique de charger et d'exécuter d'autres scripts. Cela peut être fait de différentes manières, notamment :
- Les clés de métadonnées
@require
et@resource
. XmlHttpRequest
pour télécharger le script, puiseval
pour l'exécuter.- Ajout d'un
<script>
marquer dynamiquement. - L'option
externes
de Webpack. - Effectuer une mise à jour du script, qu'elle soit effectuée automatiquement ou en demandant à l'utilisateur d'effectuer une action.
Bien qu'il s'agisse d'une fonctionnalité utile et que la plupart des auteurs de scripts l'utilisent à des fins légitimes, elle peut également être utilisée de manière malveillante. L'un des principes fondamentaux de Greasy Fork est que l'utilisateur doit pouvoir inspecter le code dans un script. Les scripts externes peuvent contourner ce principe de plusieurs manières : ils peuvent changer sans avertissement ni historique, ils peuvent servir un code différent à différentes personnes et ils peuvent être utilisés pour cacher du code malveillant au milieu de bibliothèques connues. Même si quelqu'un devait vérifier un script externe et déterminer qu'il est légitime, cela ne garantirait pas que ce script a toujours été ou sera toujours légitime.
Codes externes autorisés
Voici les façons dont le code externe est autorisé sur Greasy Fork. Sauf indication contraire, tous les autres règles pour le code s'appliquent au code externe.
Réseaux de diffusion de contenu (CDNs/RDC)
Le code des CDN est autorisé. Voir une liste de CDN reconnus. Ce code peut être minifié, mais pas obscurci.
Scripts avec hachages d'intégrité des sous-ressources
L'utilisation de @require
et @resource
avec des URL avec intégrité des sous-ressources au Tampermonkey format est autorisée.
Greasy Fork bibliothèques
Les scripts publiés en tant que bibliothèques sur Greasy Fork sont autorisés. Les bibliothèques peuvent être créées en choisissant l'option lors de la création d'un nouveau script. Ceux-ci peuvent en outre être configurés pour se synchroniser à partir d'une URL externe, comme un référentiel GitHub.
Injection de scripts depuis l'hôte d'origine
L'injection de scripts externes sur le même domaine que celui d'où ils proviennent est autorisée. Si un script s'exécute sur https://example.com et télécharge https://example.com/script.js, le modifie et réinjecte sur https://example.com/, cela serait autorisé.
Si https://example.com/script.js est injecté sur https://differentsite.com, cela ne sera pas autorisé.