tencent cloud

Tencent Cloud EdgeOne

カスタムReferer制限ルール

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-15 18:25:51
AI翻訳
この例では、HTTPリクエストヘッダーのRefererフィールドをチェックすることで、リクエストの送信元を判断できます。お客様はご自身のニーズに応じて、Refererフィールドのマッチングルールを柔軟に設定できます。リクエスト内のRefererフィールドが欠落している場合、またはその値が事前設定されたドメイン名リストと一致しない場合、エッジ関数はこのようなリクエストをブロックし、403ステータスコードを返してアクセスが拒否されたことを示します。これは通常、Webサイトのリソースへのアクセスを制限するために使用されます。
async function handleRequest(request) {
// Refererを取得します。
const referer = request.headers.get('Referer');

// Refererが空の場合、アクセスを禁止します。
if (!referer) {
return new Response(null, { status: 403 });
}
// Referer許可リストを設定します。
const urlInfo = new URL(request.url);
const refererRegExp = new RegExp(`^https?:\\/\\/${urlInfo.hostname}\\/t-[0-9a-z]{10}\\/.*`)
// Refererが許可リストにない場合、アクセスを禁止します。
if (!refererRegExp.test(referer)) {
return new Response(null, { status: 403 });
}

// 通常のリクエストでは、EdgeOneノードのキャッシュにアクセスするか、オリジンサーバーへアクセスします。
return fetch(request);
}

addEventListener('fetch', event => {
// 関数コードが未処理の例外をスローした場合、エッジ関数はこのリクエストをオリジンサーバーへ転送します。
event.passThroughOnException();
event.respondWith(handleRequest(event.request));
});

サンプルプレビュー

PCおよびモバイル端末のブラウザのアドレスバーに、エッジ関数のトリガールールに一致するURL(例:https://example.com/images/ef-1.jpeg)を入力すると、サンプル効果をプレビューできます。
HTTPリクエストヘッダーRefererがhttps://example.com/t-0123456789/pageの場合、エッジ関数は画像を正常に応答します。


HTTPリクエストヘッダーRefererが許可リストにない場合、エッジ関数はこれを不正リンクと認識し、403ステータスコードを返します。




関連参考



ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック