From 94f38c03987da19ee4ff73b3e564f4cb7c2eb95e Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Wed, 2 Dec 2020 16:36:55 -0700 Subject: [PATCH 1/5] Update Console domains for RTDB SDK --- .../database/src/realtime/BrowserPollConnection.ts | 6 +++--- packages/database/src/realtime/Constants.ts | 3 ++- .../database/src/realtime/WebSocketConnection.ts | 13 ++++--------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/packages/database/src/realtime/BrowserPollConnection.ts b/packages/database/src/realtime/BrowserPollConnection.ts index eb8fa6e3b8c..12dae3ed164 100644 --- a/packages/database/src/realtime/BrowserPollConnection.ts +++ b/packages/database/src/realtime/BrowserPollConnection.ts @@ -28,7 +28,7 @@ import { StatsManager } from '../core/stats/StatsManager'; import { PacketReceiver } from './polling/PacketReceiver'; import { APPLICATION_ID_PARAM, - FORGE_DOMAIN, + FORGE_DOMAIN_RE, FORGE_REF, LAST_SESSION_PARAM, LONG_POLLING, @@ -222,8 +222,8 @@ export class BrowserPollConnection implements Transport { } if ( typeof location !== 'undefined' && - location.href && - location.href.indexOf(FORGE_DOMAIN) !== -1 + location.hostname && + FORGE_DOMAIN_RE.test(location.hostname) ) { urlParams[REFERER_PARAM] = FORGE_REF; } diff --git a/packages/database/src/realtime/Constants.ts b/packages/database/src/realtime/Constants.ts index 54f21a44d45..17ebc1fcd85 100644 --- a/packages/database/src/realtime/Constants.ts +++ b/packages/database/src/realtime/Constants.ts @@ -25,7 +25,8 @@ export const REFERER_PARAM = 'r'; export const FORGE_REF = 'f'; -export const FORGE_DOMAIN = 'firebaseio.com'; +// Matches *.corp.google.com and console.firebase.google.com. +export const FORGE_DOMAIN_RE = /(console\.firebase|.*\.corp)\.google\.com/; export const LAST_SESSION_PARAM = 'ls'; diff --git a/packages/database/src/realtime/WebSocketConnection.ts b/packages/database/src/realtime/WebSocketConnection.ts index 13fbff37325..81c896b5851 100644 --- a/packages/database/src/realtime/WebSocketConnection.ts +++ b/packages/database/src/realtime/WebSocketConnection.ts @@ -16,16 +16,11 @@ */ import { RepoInfo } from '../core/RepoInfo'; -import { - assert, - jsonEval, - stringify, - isNodeSdk -} from '@firebase/util'; +import { assert, jsonEval, stringify, isNodeSdk } from '@firebase/util'; import { logWrapper, splitStringBySize } from '../core/util/util'; import { StatsManager } from '../core/stats/StatsManager'; import { - FORGE_DOMAIN, + FORGE_DOMAIN_RE, FORGE_REF, LAST_SESSION_PARAM, PROTOCOL_VERSION, @@ -121,8 +116,8 @@ export class WebSocketConnection implements Transport { if ( !isNodeSdk() && typeof location !== 'undefined' && - location.href && - location.href.indexOf(FORGE_DOMAIN) !== -1 + location.hostname && + FORGE_DOMAIN_RE.test(location.hostname) ) { urlParams[REFERER_PARAM] = FORGE_REF; } From bc7fa1b59bd0413ade98a84ad3691c8f639d34ad Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Wed, 2 Dec 2020 16:38:42 -0700 Subject: [PATCH 2/5] Rewrite --- packages/database/src/realtime/Constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/database/src/realtime/Constants.ts b/packages/database/src/realtime/Constants.ts index 17ebc1fcd85..022f61a132e 100644 --- a/packages/database/src/realtime/Constants.ts +++ b/packages/database/src/realtime/Constants.ts @@ -25,7 +25,7 @@ export const REFERER_PARAM = 'r'; export const FORGE_REF = 'f'; -// Matches *.corp.google.com and console.firebase.google.com. +// Matches console.firebase.google.com and *.corp.google.com. export const FORGE_DOMAIN_RE = /(console\.firebase|.*\.corp)\.google\.com/; export const LAST_SESSION_PARAM = 'ls'; From 5141f97e81b5cc709e65fd1c724a246544ebc63f Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Thu, 3 Dec 2020 16:20:26 -0700 Subject: [PATCH 3/5] Update Constants.ts --- packages/database/src/realtime/Constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/database/src/realtime/Constants.ts b/packages/database/src/realtime/Constants.ts index 022f61a132e..3c88ab967c9 100644 --- a/packages/database/src/realtime/Constants.ts +++ b/packages/database/src/realtime/Constants.ts @@ -26,7 +26,7 @@ export const REFERER_PARAM = 'r'; export const FORGE_REF = 'f'; // Matches console.firebase.google.com and *.corp.google.com. -export const FORGE_DOMAIN_RE = /(console\.firebase|.*\.corp)\.google\.com/; +export const FORGE_DOMAIN_RE = /(console\.firebase|firebase-console-\w*.corp)\.google\.com/; export const LAST_SESSION_PARAM = 'ls'; From 46cfcdeb51418d7f517460406480c5ca21921547 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Thu, 3 Dec 2020 16:46:55 -0700 Subject: [PATCH 4/5] Another regexp attempt --- packages/database/src/realtime/Constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/database/src/realtime/Constants.ts b/packages/database/src/realtime/Constants.ts index 3c88ab967c9..48977a94f71 100644 --- a/packages/database/src/realtime/Constants.ts +++ b/packages/database/src/realtime/Constants.ts @@ -26,7 +26,7 @@ export const REFERER_PARAM = 'r'; export const FORGE_REF = 'f'; // Matches console.firebase.google.com and *.corp.google.com. -export const FORGE_DOMAIN_RE = /(console\.firebase|firebase-console-\w*.corp)\.google\.com/; +export const FORGE_DOMAIN_RE = /(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/; export const LAST_SESSION_PARAM = 'ls'; From de7b87945c0434729c0133abfd7f8c28ab316571 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Thu, 3 Dec 2020 16:47:30 -0700 Subject: [PATCH 5/5] Another regexp attempt --- packages/database/src/realtime/Constants.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/database/src/realtime/Constants.ts b/packages/database/src/realtime/Constants.ts index 48977a94f71..70864addede 100644 --- a/packages/database/src/realtime/Constants.ts +++ b/packages/database/src/realtime/Constants.ts @@ -25,7 +25,8 @@ export const REFERER_PARAM = 'r'; export const FORGE_REF = 'f'; -// Matches console.firebase.google.com and *.corp.google.com. +// Matches console.firebase.google.com, firebase-console-*.corp.google.com and +// firebase.corp.google.com export const FORGE_DOMAIN_RE = /(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/; export const LAST_SESSION_PARAM = 'ls';