Greasy Fork permite a utilização de código externo em casos específicos. Qualquer script que inclua código externo fora do que é permitido está sujeito a remoção. Se encontrar um script a violar estas regras, denuncie-o.

Note que estas regras só se aplicam a código executável externo. O carregamento de código não executável, por exemplo JSON ou CSS, não está restringido.

Fundamentação

Os scripts de utilizador têm a capacidade técnica de carregar e executar outros scripts. Isto pode ser feito de várias formas, incluindo:

Embora isto seja uma funcionalidade útil e a maioria dos autores a utilize para fins legítimos, também pode ser usado de forma maliciosa. Um dos princípios centrais de Greasy Fork é que o utilizador tem de conseguir inspecionar o código de um script. Scripts externos podem contornar este princípio de várias formas: podem mudar sem aviso ou histórico, podem servir código diferente a pessoas diferentes e podem ser usados para esconder código malicioso no meio de bibliotecas conhecidas. Mesmo que alguém verificasse um script externo e determinasse que é legítimo, isso não seria garantia de que esse script sempre foi ou sempre será legítimo.

Códigos externos permitidos

Estas são as formas em que o código externo é permitido em Greasy Fork. Salvo indicação em contrário, todas as outras regras relativas a código aplicam-se ao código externo.

Redes de distribuição de conteúdos (CDN)

É permitido código proveniente de CDNs. Veja uma lista de CDNs reconhecidas. Este código pode estar minificado, mas não ofuscado.

Scripts com hashes de integridade de subrecursos

É permitida a utilização de @require e @resource com URLs com integridade de subrecurso no formato do Tampermonkey.

Bibliotecas de Greasy Fork

São permitidos scripts publicados como bibliotecas em Greasy Fork. As bibliotecas podem ser criadas escolhendo essa opção ao criar um novo script. Além disso, podem ser configuradas para sincronizar a partir de um URL externo, como um repositório GitHub.

Injeção de scripts a partir do anfitrião de origem

É permitida a injeção de scripts externos no mesmo domínio de onde provêm. Se um script correr em https://example.com e transferir https://example.com/script.js, modificá-lo e injetar de volta na página, isso é permitido.

Isto existe porque alguns sites incluem o seu próprio JavaScript de formas que podem ser difíceis de alterar sem esta técnica. Ainda assim, o script resultante continua sujeito a todas as outras regras relativas a código.