Greasy Forkでは、特定の状況で外部のコードの使用を許可しています。許可されていない外部コードを含むスクリプトが見つかれば削除されます。これらの規則に違反するスクリプトを見つけたら通報してください。
コード注: これらの規則は、外部の実行可能なコードにのみ適用されます。JSON や CSS など実行できないコードの読み込みは制限されていません。
合理的な理由がある
ユーザースクリプトほかのスクリプトを読み込み実行する技術的な機能があります。以下のような様々な方法で実行されます:
@require
と@resource
メタデータのキー。- スクリプトをダウンロードするために
XmlHttpRequest
と、その後実行するためのeval
関数。 <script>
タグを動的に追加する。- Webpack の
externals
オプション。 - そのスクリプトの更新を実行する。自動、またはユーザーが直接操作を実行するかに関係なく。
便利なので、スクリプトの作者のほとんどはこれを正当な目的で使用する一方で、悪意を持って使用することもできます。Greasy Fork の核となる原則のひとつは、ユーザーがスクリプトのコードを検査できる必要があるということです。外部スクリプトはいくつかの方法でこの原則を回避できます: 警告や履歴を残さず変更する、人々の間で異なるコードを提供する、よく知られたライブラリの中に悪意のあるコードを隠す。誰かが外部スクリプトを検査して正当だと判断しても、そのスクリプトが正当であった、または常に正当であるとは保証されません。
許可される外部のコード
Greasy Forkで許可される外部のコードの方法は以下です。指定がない限り、すべての他のコードの規則は外部のコードにも適用されます。
コンテンツデリバリネットワーク (CDN)
CDN のコードは許可されています。確認済みのCDNの一覧を確認ください。このコードは圧縮 minify されることもありますが、難読化は許容されません。
サブリソースの整合用のハッシュを使用したスクリプト
@require
と @resource
をサブリソースの完全性を保証する目的で Tampermonkey の形式で使用することは許可されています。
Greasy Fork のライブラリ
Greasy Fork にライブラリとして投稿されたスクリプトは許可されています。新しくスクリプトを作成する際に選択することでライブラリを作成できます。GitHub のリポジトリのような外部の URL から同期するようにも設定できます。
同じホストからのスクリプトの挿入
同じドメインの外部スクリプトを挿入することは許可されています。https://example.com 上で実行されるスクリプトが https://example.com/script.js をダウンロードし、https://example.com/ へと挿入することは許可されています。
https://example.com/script.js を https://differentsite.com に挿入することは許可されていません。