Greasy Fork is available in English.

Greasy Fork 允许在特定情况下使用外部代码。任何脚本发现使用超出允许范围的外部代码都将会被删除。如果您发现有脚本违反了这些规则,请举报它。

请注意,这些规则仅适用于外部可执行代码。那些加载但不可执行代码不受限制,例如JSON或CSS。

运作机理

用户脚本具有加载和执行其他脚本的技术能力。这可以通过几种不同的方式实现,包括:

虽然这是一个有用的功能,大多数脚本作者都是出于合法目的使用它的,但它也可能被恶意使用。Greasy Fork 的核心原则之一是用户必须能够检查脚本中的代码。外部脚本可以通过多种方式绕过这一原则:它们可能会在没有警告或历史记录的情况下发生更改,它们可以为不同的人提供不同的代码,它们还可以用于在已知库的中间隐藏恶意代码。即使有人检查了外部脚本并确定其是合法的,也不能保证该脚本一直是合法的或将来会一直是合法的。

允许的外部代码

以下是外部代码在 Greasy Fork 上被允许的方式。除非另有规定,否则所有其他 代码规则 都适用于外部代码。

内容交付网络(CDN)

允许使用源自 CDN 的代码。详见获准 CDN 名单。代码可以缩小,但不能混淆。

附有子资源完整性散列的脚本

允许使用 Tampermonkey 格式 下的有子资源完整性@require@resource URL。

Greasy Fork 库

在 Greasy Fork 上发布作为库的脚本是允许的。可以通过选择创建新脚本时的选项来创建库。这些库还可以额外设定为从外部 URL 同步,例如 GitHub 仓库

来自原始主机的脚本注入

允许对与其来源相同域的外部脚本进行注入。如果一个脚本在 https://example.com 上运行,并下载 https://example.com/script.js,对其进行修改,然后注入回 https://example.com/,这是允许的。

如果 https://example.com/script.js 被注入到 https://不同网站.com 上,这将被禁止。