Greasy Fork staat het gebruik van externe code in sommige gevallen toe. Scripts die externe code bevatten buiten het toegestane gebruik worden verwijderd. Als je een script tegenkomt die de regels overtreedt, maak er dan melding van.
Let op: deze regels zijn alléén van toepassing op externe, uitvoerbare code. Het laden van niet-uitvoerbare code, zoals json en css, is altijd toegestaan.
Rationeel
Gebruikersscripts zijn technisch in staat om andere scripts te laden en uit te voeren. Dit kan op verschillende manieren, waaronder:
- De
@require
- en@resource
-sleutels; XmlHttpRequest
om een script op te halen eneval
om het uit te voeren;- Door een
<script>
-tag toe te voegen; - Met Webpack's
externals
-optie; - Door een update van het script uit te voeren, automatisch of middels een gebruikersactie.
Dit is een handige functie en de meeste scriptmakers gebruiken dit voor legitieme doeleinden, maar de functie kan ook worden misbruikt. Een van de kernwaarden van Greasy Fork is dat de gebruiker code van een script moet kunnen inspecteren. Externe scripts kunnen deze werkwijze op verschillende manieren omzeilen: zonder waarschuwing of geschiedenis, door het tonen van verschillende code aan verschillende mensen en door het verbergen van schadelijke code te midden van bekende bibliotheken. Zelfs áls iemand een extern script zou controleren en het als legitiem zou aanmerken, dan nog is er geen garantie dat een script altijd legitiem is of zal zijn.
Toegestane externe codes
Dit zijn de methoden waarop externe code is toegestaan op Greasy Fork. Alle overige regels omtrent code zijn van toepassing, tenzij anders aangegeven.
Contentdeliverynetwerken (CDNs)
Code van CDNs is niet toegestaan. Bekijk een lijst met herkende CDNs. De code mag verkleind worden, maar niet verdoezeld.
Scripts met subbron-controlesommen
Het gebruik van @require
en @resource
in combinatie met url's met subbron-integriteit in de Tampermonkey-opmaak is toegestaan.
Greasy Forkbibliotheken
Scripts als bibliotheken plaatsen op Greasy Fork is toegestaan. Bibliotheken kunnen worden optioneel worden samengesteld tijdens het maken van een nieuw script. Ze kunnen desgewenst worden opgehaald van een externe url, zoals een GitHub-repo.
Scripts invoegen van oorspronkelijke host
Invoegen van externe scripts van dezelfde domeinnaam als waar ze vandaan komen is toegestaan. Als een script op https://voorbeeld.nl wordt uitgevoerd en https://voorbeeld.nl/script.js downloadt, dit aanpast en vervolgens weer op https://voorbeeld.nl/ invoegt, dan mag dat.
https://voorbeeld.nl/script.js invoegen op https://anderesite.nl mag niet.