Greasy Fork позволява използването на външен код в определени случаи. Всеки скрипт, за който се установи, че включва външен код извън позволеното, подлежи на изтриване. Ако забележите скрипт, който нарушава правилата, моля, докладвайте го.

Имайте предвид, че тези правила се прилагат само за външен изпълним код. Зареждането на данни, например JSON или CSS, не се ограничава.

Обосновка

Потребителските скриптове имат техническата възможност да зареждат и изпълняват други скриптове. Това може да стане по няколко различни начина, включително:

Въпреки че това е полезна функция и повечето автори на скриптове я използват както се полага, тя може да бъде използвана и злонамерено. Един от основните принципи на Greasy Fork е, че потребителят трябва да може да проверява кода в скрипта. Външните скриптове могат да заобиколят този принцип по различни начини: могат да се променят без предупреждение или история, могат да предоставят различен код на различни хора и могат да се използват за скриване на зловреден код под формата на познати библиотеки. Дори ако някой трябва да провери външен скрипт за да определи, дали е читав, това не може да гарантира, че този скрипт винаги е бил или винаги ще бъде легитимен.

Разрешени външни кодове

Това са начините, по които е разрешен външен код Greasy Fork. Освен ако не е оказано друго, всички правила за кода се прилагат за външния код.

Content delivery networks (CDNs)

Зареждането на код от CDN е позволено. Вижте списък с разрешени CDN. Кодът може да е сбит, но не и обфускиран.

Скриптове с проверка за целостта на подресурса

Използването на @require и @resource с URLи с проверка на подресурса в Tampermonkey формат е позволено.

Greasy Fork библиотеки

Скриптове, публикувани като библиотеки на Greasy Fork са позволени. Библиотеките могат да бъдат създадени чрез избиране на опцията при създаване на нов скрипт. Допълнително може да бъде указано да се синхронизират с външен URL като хранилище на GitHub.

Инжектиране на скриптове от origin host

Разрешено е инжектиране на външни скриптове в същия домейн, където е оригиналният скрипт. Ако скрипт се изпълнява на https://example.com и изтегля https://example.com/script.js, променя го и се инжектира обратно на https://example.com/, това ще бъде разрешено.

Ако https://example.com/script.js се инжектира в https://differentsite.com, няма да бъде разрешено.