Greasy Fork

Shined up real nice.

Greasy Fork is available in English.

使用者腳本技術上有載入並執行其它腳本的能力。@require 是最簡單的一個方法,但是也可以使用其它方法如 XmlHttpRequest 下載一個腳本並插入到 DOM(頁面元素)。

這是個很有用的功能,且大多數的作者皆將它用於合法用途,但它也可以用來插入惡意代碼。Greasy Fork 的核心準則之一——用戶必須能查詢腳本中的代碼。外部腳本可以用不同方法繞過這個規則,比如說:它們可以隨時變更而不留下歷史紀錄、它們可以針對性地提供不同的代碼給不同的人、也可以在正常的函式庫中間插入一小段的惡意代碼以避免發現。即使有人檢查過代碼的合法性,也不能保證這個腳本在這之前或未來也是安全的。

為了允許腳本作者繼續使用外部腳本,Greasy Fork 使用了一個允許被引入的外部腳本列表。這些網站必須:

當前允許的網址列表是:

如果您嘗試發佈一個腳本,它 @require 了白名單之外的外部腳本,您將不能保存您的腳本。

如果您希望引入一個第三方函式庫 (例如 jQuery 或 YUI),請嘗試在上述白名單網站尋找。cdnjs 以及 jsDelivr 包含了大量的第三方函式庫可供您使用。

如果您希望使用的腳本不存在於上述網站,您可以 告知我們,讓我們告訴您在哪尋找 (或者我們可以自己託管!)。

如果您希望引入的腳本是您自己編寫的,您可以在 Greasy Fork 發表,發表時選「函式庫」類型即可。然後您就可以引入到您的腳本了。