diff --git a/app/usage.js b/app/usage.js index 8829358..0dab83a 100644 --- a/app/usage.js +++ b/app/usage.js @@ -125,13 +125,13 @@ export function resetRateLimit() { const stripSlash = (s) => String(s || '').replace(/\/$/, ''); /** - * 以實際 hostname 精確比對是否為 OpenRouter,避免被偽造的 baseURL - * (如 `openrouter.ai.evil.com` 或 `evil.com/openrouter.ai`)矇騙而把 API key 送往惡意主機。 + * 以實際 hostname 精確比對是否為 OpenRouter(僅接受 apex 域名 `openrouter.ai`), + * 避免被偽造的 baseURL(如 `openrouter.ai.evil.com`、`evil.com/openrouter.ai` 或任何子網域) + * 矇騙而把 API key 送往非 OpenRouter 主機。 */ function isOpenRouterBaseURL(baseURL) { try { - const host = new URL(baseURL).hostname.toLowerCase(); - return host === 'openrouter.ai' || host.endsWith('.openrouter.ai'); + return new URL(baseURL).hostname.toLowerCase() === 'openrouter.ai'; } catch { return false; }