oidc-spa 8.5.2 → 8.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/createOidc.js +1 -1
- package/core/tokenExfiltrationDefense.js +77 -69
- package/core/tokenExfiltrationDefense.js.map +1 -1
- package/core/tokenPlaceholderSubstitution.d.ts +4 -1
- package/core/tokenPlaceholderSubstitution.js +14 -10
- package/core/tokenPlaceholderSubstitution.js.map +1 -1
- package/esm/core/createOidc.js +1 -1
- package/esm/core/tokenExfiltrationDefense.js +77 -69
- package/esm/core/tokenExfiltrationDefense.js.map +1 -1
- package/esm/core/tokenPlaceholderSubstitution.d.ts +4 -1
- package/esm/core/tokenPlaceholderSubstitution.js +14 -10
- package/esm/core/tokenPlaceholderSubstitution.js.map +1 -1
- package/package.json +1 -1
- package/src/core/tokenExfiltrationDefense.ts +87 -91
- package/src/core/tokenPlaceholderSubstitution.ts +19 -10
package/core/createOidc.js
CHANGED
|
@@ -72,7 +72,7 @@ const homeAndRedirectUri_1 = require("./homeAndRedirectUri");
|
|
|
72
72
|
const ensureNonBlankPaint_1 = require("../tools/ensureNonBlankPaint");
|
|
73
73
|
const StateDataCookie_1 = require("./StateDataCookie");
|
|
74
74
|
// NOTE: Replaced at build time
|
|
75
|
-
const VERSION = "8.5.
|
|
75
|
+
const VERSION = "8.5.3";
|
|
76
76
|
const globalContext = {
|
|
77
77
|
prOidcByConfigId: new Map(),
|
|
78
78
|
hasLogoutBeenCalled: (0, id_1.id)(false)
|
|
@@ -31,7 +31,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
31
31
|
let didSubstitute = false;
|
|
32
32
|
const headers = new Headers();
|
|
33
33
|
request.headers.forEach((value, key) => {
|
|
34
|
-
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
34
|
+
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
35
|
+
text: value,
|
|
36
|
+
doEncodeUriComponent: false
|
|
37
|
+
});
|
|
35
38
|
if (nextValue !== value) {
|
|
36
39
|
didSubstitute = true;
|
|
37
40
|
}
|
|
@@ -50,7 +53,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
50
53
|
break from_init;
|
|
51
54
|
}
|
|
52
55
|
if (typeof init.body === "string") {
|
|
53
|
-
body = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
56
|
+
body = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
57
|
+
text: init.body,
|
|
58
|
+
doEncodeUriComponent: false
|
|
59
|
+
});
|
|
54
60
|
if (init.body !== body) {
|
|
55
61
|
didSubstitute = true;
|
|
56
62
|
}
|
|
@@ -60,7 +66,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
60
66
|
let didUrlSearchParamsSubstitute = false;
|
|
61
67
|
const next = new URLSearchParams();
|
|
62
68
|
init.body.forEach((value, key) => {
|
|
63
|
-
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
69
|
+
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
70
|
+
text: value,
|
|
71
|
+
doEncodeUriComponent: false
|
|
72
|
+
});
|
|
64
73
|
if (nextValue !== value) {
|
|
65
74
|
didUrlSearchParamsSubstitute = true;
|
|
66
75
|
}
|
|
@@ -77,7 +86,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
77
86
|
const next = new FormData();
|
|
78
87
|
init.body.forEach((value, key) => {
|
|
79
88
|
if (typeof value === "string") {
|
|
80
|
-
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
89
|
+
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
90
|
+
text: value,
|
|
91
|
+
doEncodeUriComponent: false
|
|
92
|
+
});
|
|
81
93
|
if (nextValue !== value) {
|
|
82
94
|
didFormDataSubstitute = true;
|
|
83
95
|
}
|
|
@@ -127,12 +139,23 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
127
139
|
break handle_body;
|
|
128
140
|
}
|
|
129
141
|
const bodyText = await request.clone().text();
|
|
130
|
-
const nextBodyText = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
142
|
+
const nextBodyText = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
143
|
+
text: bodyText,
|
|
144
|
+
doEncodeUriComponent: false
|
|
145
|
+
});
|
|
131
146
|
if (nextBodyText !== bodyText) {
|
|
132
147
|
didSubstitute = true;
|
|
133
148
|
}
|
|
134
149
|
body = nextBodyText;
|
|
135
150
|
}
|
|
151
|
+
let url;
|
|
152
|
+
{
|
|
153
|
+
const url_before = request.url;
|
|
154
|
+
url = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({ text: url_before, doEncodeUriComponent: true });
|
|
155
|
+
if (url !== url_before) {
|
|
156
|
+
didSubstitute = true;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
136
159
|
block_authed_request_to_unauthorized_hostnames: {
|
|
137
160
|
if (!didSubstitute) {
|
|
138
161
|
break block_authed_request_to_unauthorized_hostnames;
|
|
@@ -173,7 +196,7 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
173
196
|
nextInit.duplex = duplex;
|
|
174
197
|
}
|
|
175
198
|
}
|
|
176
|
-
return fetch_actual(
|
|
199
|
+
return fetch_actual(url, nextInit);
|
|
177
200
|
};
|
|
178
201
|
}
|
|
179
202
|
function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params) {
|
|
@@ -181,23 +204,24 @@ function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params) {
|
|
|
181
204
|
const open_actual = XMLHttpRequest.prototype.open;
|
|
182
205
|
const send_actual = XMLHttpRequest.prototype.send;
|
|
183
206
|
const setRequestHeader_actual = XMLHttpRequest.prototype.setRequestHeader;
|
|
184
|
-
const
|
|
185
|
-
const getXhrData = (xhr) => {
|
|
186
|
-
const xhr_any = xhr;
|
|
187
|
-
if (xhr_any[xhrDataSymbol] !== undefined) {
|
|
188
|
-
return xhr_any[xhrDataSymbol];
|
|
189
|
-
}
|
|
190
|
-
const data = {
|
|
191
|
-
url: "",
|
|
192
|
-
didSubstitute: false
|
|
193
|
-
};
|
|
194
|
-
xhr_any[xhrDataSymbol] = data;
|
|
195
|
-
return data;
|
|
196
|
-
};
|
|
207
|
+
const stateByInstance = new WeakMap();
|
|
197
208
|
XMLHttpRequest.prototype.open = function open(method, url, async, username, password) {
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
209
|
+
const state = { url: "", didSubstitute: false };
|
|
210
|
+
{
|
|
211
|
+
const url_str = typeof url === "string" ? url : url.href;
|
|
212
|
+
state.url = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({ text: url_str, doEncodeUriComponent: true });
|
|
213
|
+
if (url_str !== state.url) {
|
|
214
|
+
state.didSubstitute = true;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
stateByInstance.set(this, state);
|
|
218
|
+
prevent_fetching_of_hashed_js_assets: {
|
|
219
|
+
const { pathname } = new URL(state.url, window.location.href);
|
|
220
|
+
if (!viteHashedJsAssetPathRegExp.test(pathname)) {
|
|
221
|
+
break prevent_fetching_of_hashed_js_assets;
|
|
222
|
+
}
|
|
223
|
+
throw new Error("oidc-spa: Blocked request to hashed static asset.");
|
|
224
|
+
}
|
|
201
225
|
if (async === undefined) {
|
|
202
226
|
return open_actual.bind(this)(method, url);
|
|
203
227
|
}
|
|
@@ -206,35 +230,33 @@ function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params) {
|
|
|
206
230
|
}
|
|
207
231
|
};
|
|
208
232
|
XMLHttpRequest.prototype.setRequestHeader = function setRequestHeader(name, value) {
|
|
209
|
-
const
|
|
210
|
-
|
|
233
|
+
const state = stateByInstance.get(this);
|
|
234
|
+
(0, assert_1.assert)(state !== undefined, "29440283");
|
|
235
|
+
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({ text: value, doEncodeUriComponent: false });
|
|
211
236
|
if (nextValue !== value) {
|
|
212
|
-
|
|
237
|
+
state.didSubstitute = true;
|
|
213
238
|
}
|
|
214
239
|
return setRequestHeader_actual.call(this, name, nextValue);
|
|
215
240
|
};
|
|
216
241
|
XMLHttpRequest.prototype.send = function send(body) {
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
const { pathname } = new URL(xhrData.url, window.location.href);
|
|
220
|
-
if (!viteHashedJsAssetPathRegExp.test(pathname)) {
|
|
221
|
-
break prevent_fetching_of_hashed_js_assets;
|
|
222
|
-
}
|
|
223
|
-
throw new Error("oidc-spa: Blocked request to hashed static asset.");
|
|
224
|
-
}
|
|
242
|
+
const state = stateByInstance.get(this);
|
|
243
|
+
(0, assert_1.assert)(state !== undefined, "32323484");
|
|
225
244
|
let nextBody = body;
|
|
226
245
|
if (typeof body === "string") {
|
|
227
|
-
const nextBodyText = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
246
|
+
const nextBodyText = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
247
|
+
text: body,
|
|
248
|
+
doEncodeUriComponent: false
|
|
249
|
+
});
|
|
228
250
|
if (nextBodyText !== body) {
|
|
229
|
-
|
|
251
|
+
state.didSubstitute = true;
|
|
230
252
|
}
|
|
231
253
|
nextBody = nextBodyText;
|
|
232
254
|
}
|
|
233
255
|
block_authed_request_to_unauthorized_hostnames: {
|
|
234
|
-
if (!
|
|
256
|
+
if (!state.didSubstitute) {
|
|
235
257
|
break block_authed_request_to_unauthorized_hostnames;
|
|
236
258
|
}
|
|
237
|
-
const { hostname } = new URL(
|
|
259
|
+
const { hostname } = new URL(state.url, window.location.href);
|
|
238
260
|
if ((0, isHostnameAuthorized_1.getIsHostnameAuthorized)({
|
|
239
261
|
allowedHostnames: resourceServersAllowedHostnames,
|
|
240
262
|
extendAuthorizationToParentDomain: true,
|
|
@@ -258,32 +280,8 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params) {
|
|
|
258
280
|
const wsDataByWs = new WeakMap();
|
|
259
281
|
const WebSocketPatched = function WebSocket(url, protocols) {
|
|
260
282
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
261
|
-
const nextUrl = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(urlStr);
|
|
283
|
+
const nextUrl = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({ text: urlStr, doEncodeUriComponent: true });
|
|
262
284
|
let didSubstitute = nextUrl !== urlStr;
|
|
263
|
-
const nextProtocols = (() => {
|
|
264
|
-
if (protocols === undefined) {
|
|
265
|
-
return protocols;
|
|
266
|
-
}
|
|
267
|
-
if (typeof protocols === "string") {
|
|
268
|
-
const next = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(protocols);
|
|
269
|
-
if (next !== protocols) {
|
|
270
|
-
didSubstitute = true;
|
|
271
|
-
}
|
|
272
|
-
return next;
|
|
273
|
-
}
|
|
274
|
-
let didProtocolsSubstitute = false;
|
|
275
|
-
const next = protocols.map(protocol => {
|
|
276
|
-
const nextProtocol = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(protocol);
|
|
277
|
-
if (nextProtocol !== protocol) {
|
|
278
|
-
didProtocolsSubstitute = true;
|
|
279
|
-
}
|
|
280
|
-
return nextProtocol;
|
|
281
|
-
});
|
|
282
|
-
if (didProtocolsSubstitute) {
|
|
283
|
-
didSubstitute = true;
|
|
284
|
-
}
|
|
285
|
-
return next;
|
|
286
|
-
})();
|
|
287
285
|
const { hostname, pathname } = new URL(nextUrl, window.location.href);
|
|
288
286
|
block_authed_request_to_unauthorized_hostnames: {
|
|
289
287
|
if (!didSubstitute) {
|
|
@@ -302,7 +300,7 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params) {
|
|
|
302
300
|
"`resourceServersAllowedHostnames`."
|
|
303
301
|
].join(" "));
|
|
304
302
|
}
|
|
305
|
-
const ws = new WebSocket_actual(nextUrl,
|
|
303
|
+
const ws = new WebSocket_actual(nextUrl, protocols);
|
|
306
304
|
wsDataByWs.set(ws, {
|
|
307
305
|
url: nextUrl,
|
|
308
306
|
hostname,
|
|
@@ -329,7 +327,10 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params) {
|
|
|
329
327
|
}
|
|
330
328
|
let nextData = data;
|
|
331
329
|
if (typeof data === "string") {
|
|
332
|
-
const nextDataText = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
330
|
+
const nextDataText = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
331
|
+
text: data,
|
|
332
|
+
doEncodeUriComponent: false
|
|
333
|
+
});
|
|
333
334
|
if (nextDataText !== data) {
|
|
334
335
|
wsData.didSubstitute = true;
|
|
335
336
|
}
|
|
@@ -369,7 +370,7 @@ function patchEventSourceApiToSubstituteTokenPlaceholder(params) {
|
|
|
369
370
|
}
|
|
370
371
|
const EventSourcePatched = function EventSource(url, eventSourceInitDict) {
|
|
371
372
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
372
|
-
const nextUrl = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(urlStr);
|
|
373
|
+
const nextUrl = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({ text: urlStr, doEncodeUriComponent: true });
|
|
373
374
|
const didSubstitute = nextUrl !== urlStr;
|
|
374
375
|
const { hostname } = new URL(nextUrl, window.location.href);
|
|
375
376
|
block_authed_request_to_unauthorized_hostnames: {
|
|
@@ -412,12 +413,12 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params) {
|
|
|
412
413
|
}
|
|
413
414
|
navigator.sendBeacon = function sendBeacon(url, data) {
|
|
414
415
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
415
|
-
const nextUrl = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(urlStr);
|
|
416
|
+
const nextUrl = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({ text: urlStr, doEncodeUriComponent: true });
|
|
416
417
|
let didSubstitute = nextUrl !== urlStr;
|
|
417
418
|
const { hostname } = new URL(nextUrl, window.location.href);
|
|
418
419
|
let nextData = data;
|
|
419
420
|
if (typeof data === "string") {
|
|
420
|
-
const next = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(data);
|
|
421
|
+
const next = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({ text: data, doEncodeUriComponent: false });
|
|
421
422
|
if (next !== data) {
|
|
422
423
|
didSubstitute = true;
|
|
423
424
|
}
|
|
@@ -427,7 +428,10 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params) {
|
|
|
427
428
|
let didUrlSearchParamsSubstitute = false;
|
|
428
429
|
const next = new URLSearchParams();
|
|
429
430
|
data.forEach((value, key) => {
|
|
430
|
-
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
431
|
+
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
432
|
+
text: value,
|
|
433
|
+
doEncodeUriComponent: false
|
|
434
|
+
});
|
|
431
435
|
if (nextValue !== value) {
|
|
432
436
|
didUrlSearchParamsSubstitute = true;
|
|
433
437
|
}
|
|
@@ -443,7 +447,10 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params) {
|
|
|
443
447
|
const next = new FormData();
|
|
444
448
|
data.forEach((value, key) => {
|
|
445
449
|
if (typeof value === "string") {
|
|
446
|
-
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)(
|
|
450
|
+
const nextValue = (0, tokenPlaceholderSubstitution_1.substitutePlaceholderByRealToken)({
|
|
451
|
+
text: value,
|
|
452
|
+
doEncodeUriComponent: false
|
|
453
|
+
});
|
|
447
454
|
if (nextValue !== value) {
|
|
448
455
|
didFormDataSubstitute = true;
|
|
449
456
|
}
|
|
@@ -493,6 +500,7 @@ function runMonkeyPatchingPrevention() {
|
|
|
493
500
|
"ServiceWorkerRegistration",
|
|
494
501
|
"ServiceWorker",
|
|
495
502
|
"FormData",
|
|
503
|
+
"WeakMap",
|
|
496
504
|
"Blob",
|
|
497
505
|
"String",
|
|
498
506
|
"Object",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenExfiltrationDefense.js","sourceRoot":"","sources":["../src/core/tokenExfiltrationDefense.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokenExfiltrationDefense.js","sourceRoot":"","sources":["../src/core/tokenExfiltrationDefense.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,8 @@ export declare function getTokensPlaceholders(params: {
|
|
|
9
9
|
configId: string;
|
|
10
10
|
tokens: Tokens;
|
|
11
11
|
}): Tokens;
|
|
12
|
-
export declare function substitutePlaceholderByRealToken(
|
|
12
|
+
export declare function substitutePlaceholderByRealToken(params: {
|
|
13
|
+
text: string;
|
|
14
|
+
doEncodeUriComponent: boolean;
|
|
15
|
+
}): string;
|
|
13
16
|
export {};
|
|
@@ -46,7 +46,8 @@ function getTokensPlaceholders(params) {
|
|
|
46
46
|
refreshToken: tokens.refreshToken === undefined ? undefined : `refresh_token_placeholder_${id}`
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
function substitutePlaceholderByRealToken(
|
|
49
|
+
function substitutePlaceholderByRealToken(params) {
|
|
50
|
+
const { text, doEncodeUriComponent } = params;
|
|
50
51
|
let text_modified = text;
|
|
51
52
|
for (const [tokenType, regExp] of [
|
|
52
53
|
["access_token", /access_token_placeholder_(\d+)/g],
|
|
@@ -63,15 +64,18 @@ function substitutePlaceholderByRealToken(text) {
|
|
|
63
64
|
"is needed, it should be requested and used immediately."
|
|
64
65
|
].join(" "));
|
|
65
66
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
67
|
+
const token = (() => {
|
|
68
|
+
switch (tokenType) {
|
|
69
|
+
case "access_token":
|
|
70
|
+
return entry.tokens.accessToken;
|
|
71
|
+
case "id_token":
|
|
72
|
+
return entry.tokens.idToken;
|
|
73
|
+
case "refresh_token":
|
|
74
|
+
(0, assert_1.assert)(entry.tokens.refreshToken !== undefined, "204392284");
|
|
75
|
+
return entry.tokens.refreshToken;
|
|
76
|
+
}
|
|
77
|
+
})();
|
|
78
|
+
return doEncodeUriComponent ? encodeURIComponent(token) : token;
|
|
75
79
|
});
|
|
76
80
|
}
|
|
77
81
|
return text_modified;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenPlaceholderSubstitution.js","sourceRoot":"","sources":["../src/core/tokenPlaceholderSubstitution.ts"],"names":[],"mappings":";;AAIA,wEAEC;AAED,sEAEC;AAgBD,sDAwCC;AAED,
|
|
1
|
+
{"version":3,"file":"tokenPlaceholderSubstitution.js","sourceRoot":"","sources":["../src/core/tokenPlaceholderSubstitution.ts"],"names":[],"mappings":"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"}
|
package/esm/core/createOidc.js
CHANGED
|
@@ -35,7 +35,7 @@ import { getHomeAndRedirectUri } from "./homeAndRedirectUri";
|
|
|
35
35
|
import { ensureNonBlankPaint } from "../tools/ensureNonBlankPaint";
|
|
36
36
|
import { setStateDataCookieIfEnabled, clearStateDataCookie, getIsStateDataCookieEnabled } from "./StateDataCookie";
|
|
37
37
|
// NOTE: Replaced at build time
|
|
38
|
-
const VERSION = "8.5.
|
|
38
|
+
const VERSION = "8.5.3";
|
|
39
39
|
const globalContext = {
|
|
40
40
|
prOidcByConfigId: new Map(),
|
|
41
41
|
hasLogoutBeenCalled: id(false)
|
|
@@ -28,7 +28,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
28
28
|
let didSubstitute = false;
|
|
29
29
|
const headers = new Headers();
|
|
30
30
|
request.headers.forEach((value, key) => {
|
|
31
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
31
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
32
|
+
text: value,
|
|
33
|
+
doEncodeUriComponent: false
|
|
34
|
+
});
|
|
32
35
|
if (nextValue !== value) {
|
|
33
36
|
didSubstitute = true;
|
|
34
37
|
}
|
|
@@ -47,7 +50,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
47
50
|
break from_init;
|
|
48
51
|
}
|
|
49
52
|
if (typeof init.body === "string") {
|
|
50
|
-
body = substitutePlaceholderByRealToken(
|
|
53
|
+
body = substitutePlaceholderByRealToken({
|
|
54
|
+
text: init.body,
|
|
55
|
+
doEncodeUriComponent: false
|
|
56
|
+
});
|
|
51
57
|
if (init.body !== body) {
|
|
52
58
|
didSubstitute = true;
|
|
53
59
|
}
|
|
@@ -57,7 +63,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
57
63
|
let didUrlSearchParamsSubstitute = false;
|
|
58
64
|
const next = new URLSearchParams();
|
|
59
65
|
init.body.forEach((value, key) => {
|
|
60
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
66
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
67
|
+
text: value,
|
|
68
|
+
doEncodeUriComponent: false
|
|
69
|
+
});
|
|
61
70
|
if (nextValue !== value) {
|
|
62
71
|
didUrlSearchParamsSubstitute = true;
|
|
63
72
|
}
|
|
@@ -74,7 +83,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
74
83
|
const next = new FormData();
|
|
75
84
|
init.body.forEach((value, key) => {
|
|
76
85
|
if (typeof value === "string") {
|
|
77
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
86
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
87
|
+
text: value,
|
|
88
|
+
doEncodeUriComponent: false
|
|
89
|
+
});
|
|
78
90
|
if (nextValue !== value) {
|
|
79
91
|
didFormDataSubstitute = true;
|
|
80
92
|
}
|
|
@@ -124,12 +136,23 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
124
136
|
break handle_body;
|
|
125
137
|
}
|
|
126
138
|
const bodyText = await request.clone().text();
|
|
127
|
-
const nextBodyText = substitutePlaceholderByRealToken(
|
|
139
|
+
const nextBodyText = substitutePlaceholderByRealToken({
|
|
140
|
+
text: bodyText,
|
|
141
|
+
doEncodeUriComponent: false
|
|
142
|
+
});
|
|
128
143
|
if (nextBodyText !== bodyText) {
|
|
129
144
|
didSubstitute = true;
|
|
130
145
|
}
|
|
131
146
|
body = nextBodyText;
|
|
132
147
|
}
|
|
148
|
+
let url;
|
|
149
|
+
{
|
|
150
|
+
const url_before = request.url;
|
|
151
|
+
url = substitutePlaceholderByRealToken({ text: url_before, doEncodeUriComponent: true });
|
|
152
|
+
if (url !== url_before) {
|
|
153
|
+
didSubstitute = true;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
133
156
|
block_authed_request_to_unauthorized_hostnames: {
|
|
134
157
|
if (!didSubstitute) {
|
|
135
158
|
break block_authed_request_to_unauthorized_hostnames;
|
|
@@ -170,7 +193,7 @@ function patchFetchApiToSubstituteTokenPlaceholder(params) {
|
|
|
170
193
|
nextInit.duplex = duplex;
|
|
171
194
|
}
|
|
172
195
|
}
|
|
173
|
-
return fetch_actual(
|
|
196
|
+
return fetch_actual(url, nextInit);
|
|
174
197
|
};
|
|
175
198
|
}
|
|
176
199
|
function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params) {
|
|
@@ -178,23 +201,24 @@ function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params) {
|
|
|
178
201
|
const open_actual = XMLHttpRequest.prototype.open;
|
|
179
202
|
const send_actual = XMLHttpRequest.prototype.send;
|
|
180
203
|
const setRequestHeader_actual = XMLHttpRequest.prototype.setRequestHeader;
|
|
181
|
-
const
|
|
182
|
-
const getXhrData = (xhr) => {
|
|
183
|
-
const xhr_any = xhr;
|
|
184
|
-
if (xhr_any[xhrDataSymbol] !== undefined) {
|
|
185
|
-
return xhr_any[xhrDataSymbol];
|
|
186
|
-
}
|
|
187
|
-
const data = {
|
|
188
|
-
url: "",
|
|
189
|
-
didSubstitute: false
|
|
190
|
-
};
|
|
191
|
-
xhr_any[xhrDataSymbol] = data;
|
|
192
|
-
return data;
|
|
193
|
-
};
|
|
204
|
+
const stateByInstance = new WeakMap();
|
|
194
205
|
XMLHttpRequest.prototype.open = function open(method, url, async, username, password) {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
206
|
+
const state = { url: "", didSubstitute: false };
|
|
207
|
+
{
|
|
208
|
+
const url_str = typeof url === "string" ? url : url.href;
|
|
209
|
+
state.url = substitutePlaceholderByRealToken({ text: url_str, doEncodeUriComponent: true });
|
|
210
|
+
if (url_str !== state.url) {
|
|
211
|
+
state.didSubstitute = true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
stateByInstance.set(this, state);
|
|
215
|
+
prevent_fetching_of_hashed_js_assets: {
|
|
216
|
+
const { pathname } = new URL(state.url, window.location.href);
|
|
217
|
+
if (!viteHashedJsAssetPathRegExp.test(pathname)) {
|
|
218
|
+
break prevent_fetching_of_hashed_js_assets;
|
|
219
|
+
}
|
|
220
|
+
throw new Error("oidc-spa: Blocked request to hashed static asset.");
|
|
221
|
+
}
|
|
198
222
|
if (async === undefined) {
|
|
199
223
|
return open_actual.bind(this)(method, url);
|
|
200
224
|
}
|
|
@@ -203,35 +227,33 @@ function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params) {
|
|
|
203
227
|
}
|
|
204
228
|
};
|
|
205
229
|
XMLHttpRequest.prototype.setRequestHeader = function setRequestHeader(name, value) {
|
|
206
|
-
const
|
|
207
|
-
|
|
230
|
+
const state = stateByInstance.get(this);
|
|
231
|
+
assert(state !== undefined, "29440283");
|
|
232
|
+
const nextValue = substitutePlaceholderByRealToken({ text: value, doEncodeUriComponent: false });
|
|
208
233
|
if (nextValue !== value) {
|
|
209
|
-
|
|
234
|
+
state.didSubstitute = true;
|
|
210
235
|
}
|
|
211
236
|
return setRequestHeader_actual.call(this, name, nextValue);
|
|
212
237
|
};
|
|
213
238
|
XMLHttpRequest.prototype.send = function send(body) {
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
const { pathname } = new URL(xhrData.url, window.location.href);
|
|
217
|
-
if (!viteHashedJsAssetPathRegExp.test(pathname)) {
|
|
218
|
-
break prevent_fetching_of_hashed_js_assets;
|
|
219
|
-
}
|
|
220
|
-
throw new Error("oidc-spa: Blocked request to hashed static asset.");
|
|
221
|
-
}
|
|
239
|
+
const state = stateByInstance.get(this);
|
|
240
|
+
assert(state !== undefined, "32323484");
|
|
222
241
|
let nextBody = body;
|
|
223
242
|
if (typeof body === "string") {
|
|
224
|
-
const nextBodyText = substitutePlaceholderByRealToken(
|
|
243
|
+
const nextBodyText = substitutePlaceholderByRealToken({
|
|
244
|
+
text: body,
|
|
245
|
+
doEncodeUriComponent: false
|
|
246
|
+
});
|
|
225
247
|
if (nextBodyText !== body) {
|
|
226
|
-
|
|
248
|
+
state.didSubstitute = true;
|
|
227
249
|
}
|
|
228
250
|
nextBody = nextBodyText;
|
|
229
251
|
}
|
|
230
252
|
block_authed_request_to_unauthorized_hostnames: {
|
|
231
|
-
if (!
|
|
253
|
+
if (!state.didSubstitute) {
|
|
232
254
|
break block_authed_request_to_unauthorized_hostnames;
|
|
233
255
|
}
|
|
234
|
-
const { hostname } = new URL(
|
|
256
|
+
const { hostname } = new URL(state.url, window.location.href);
|
|
235
257
|
if (getIsHostnameAuthorized({
|
|
236
258
|
allowedHostnames: resourceServersAllowedHostnames,
|
|
237
259
|
extendAuthorizationToParentDomain: true,
|
|
@@ -255,32 +277,8 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params) {
|
|
|
255
277
|
const wsDataByWs = new WeakMap();
|
|
256
278
|
const WebSocketPatched = function WebSocket(url, protocols) {
|
|
257
279
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
258
|
-
const nextUrl = substitutePlaceholderByRealToken(urlStr);
|
|
280
|
+
const nextUrl = substitutePlaceholderByRealToken({ text: urlStr, doEncodeUriComponent: true });
|
|
259
281
|
let didSubstitute = nextUrl !== urlStr;
|
|
260
|
-
const nextProtocols = (() => {
|
|
261
|
-
if (protocols === undefined) {
|
|
262
|
-
return protocols;
|
|
263
|
-
}
|
|
264
|
-
if (typeof protocols === "string") {
|
|
265
|
-
const next = substitutePlaceholderByRealToken(protocols);
|
|
266
|
-
if (next !== protocols) {
|
|
267
|
-
didSubstitute = true;
|
|
268
|
-
}
|
|
269
|
-
return next;
|
|
270
|
-
}
|
|
271
|
-
let didProtocolsSubstitute = false;
|
|
272
|
-
const next = protocols.map(protocol => {
|
|
273
|
-
const nextProtocol = substitutePlaceholderByRealToken(protocol);
|
|
274
|
-
if (nextProtocol !== protocol) {
|
|
275
|
-
didProtocolsSubstitute = true;
|
|
276
|
-
}
|
|
277
|
-
return nextProtocol;
|
|
278
|
-
});
|
|
279
|
-
if (didProtocolsSubstitute) {
|
|
280
|
-
didSubstitute = true;
|
|
281
|
-
}
|
|
282
|
-
return next;
|
|
283
|
-
})();
|
|
284
282
|
const { hostname, pathname } = new URL(nextUrl, window.location.href);
|
|
285
283
|
block_authed_request_to_unauthorized_hostnames: {
|
|
286
284
|
if (!didSubstitute) {
|
|
@@ -299,7 +297,7 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params) {
|
|
|
299
297
|
"`resourceServersAllowedHostnames`."
|
|
300
298
|
].join(" "));
|
|
301
299
|
}
|
|
302
|
-
const ws = new WebSocket_actual(nextUrl,
|
|
300
|
+
const ws = new WebSocket_actual(nextUrl, protocols);
|
|
303
301
|
wsDataByWs.set(ws, {
|
|
304
302
|
url: nextUrl,
|
|
305
303
|
hostname,
|
|
@@ -326,7 +324,10 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params) {
|
|
|
326
324
|
}
|
|
327
325
|
let nextData = data;
|
|
328
326
|
if (typeof data === "string") {
|
|
329
|
-
const nextDataText = substitutePlaceholderByRealToken(
|
|
327
|
+
const nextDataText = substitutePlaceholderByRealToken({
|
|
328
|
+
text: data,
|
|
329
|
+
doEncodeUriComponent: false
|
|
330
|
+
});
|
|
330
331
|
if (nextDataText !== data) {
|
|
331
332
|
wsData.didSubstitute = true;
|
|
332
333
|
}
|
|
@@ -366,7 +367,7 @@ function patchEventSourceApiToSubstituteTokenPlaceholder(params) {
|
|
|
366
367
|
}
|
|
367
368
|
const EventSourcePatched = function EventSource(url, eventSourceInitDict) {
|
|
368
369
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
369
|
-
const nextUrl = substitutePlaceholderByRealToken(urlStr);
|
|
370
|
+
const nextUrl = substitutePlaceholderByRealToken({ text: urlStr, doEncodeUriComponent: true });
|
|
370
371
|
const didSubstitute = nextUrl !== urlStr;
|
|
371
372
|
const { hostname } = new URL(nextUrl, window.location.href);
|
|
372
373
|
block_authed_request_to_unauthorized_hostnames: {
|
|
@@ -409,12 +410,12 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params) {
|
|
|
409
410
|
}
|
|
410
411
|
navigator.sendBeacon = function sendBeacon(url, data) {
|
|
411
412
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
412
|
-
const nextUrl = substitutePlaceholderByRealToken(urlStr);
|
|
413
|
+
const nextUrl = substitutePlaceholderByRealToken({ text: urlStr, doEncodeUriComponent: true });
|
|
413
414
|
let didSubstitute = nextUrl !== urlStr;
|
|
414
415
|
const { hostname } = new URL(nextUrl, window.location.href);
|
|
415
416
|
let nextData = data;
|
|
416
417
|
if (typeof data === "string") {
|
|
417
|
-
const next = substitutePlaceholderByRealToken(data);
|
|
418
|
+
const next = substitutePlaceholderByRealToken({ text: data, doEncodeUriComponent: false });
|
|
418
419
|
if (next !== data) {
|
|
419
420
|
didSubstitute = true;
|
|
420
421
|
}
|
|
@@ -424,7 +425,10 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params) {
|
|
|
424
425
|
let didUrlSearchParamsSubstitute = false;
|
|
425
426
|
const next = new URLSearchParams();
|
|
426
427
|
data.forEach((value, key) => {
|
|
427
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
428
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
429
|
+
text: value,
|
|
430
|
+
doEncodeUriComponent: false
|
|
431
|
+
});
|
|
428
432
|
if (nextValue !== value) {
|
|
429
433
|
didUrlSearchParamsSubstitute = true;
|
|
430
434
|
}
|
|
@@ -440,7 +444,10 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params) {
|
|
|
440
444
|
const next = new FormData();
|
|
441
445
|
data.forEach((value, key) => {
|
|
442
446
|
if (typeof value === "string") {
|
|
443
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
447
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
448
|
+
text: value,
|
|
449
|
+
doEncodeUriComponent: false
|
|
450
|
+
});
|
|
444
451
|
if (nextValue !== value) {
|
|
445
452
|
didFormDataSubstitute = true;
|
|
446
453
|
}
|
|
@@ -490,6 +497,7 @@ function runMonkeyPatchingPrevention() {
|
|
|
490
497
|
"ServiceWorkerRegistration",
|
|
491
498
|
"ServiceWorker",
|
|
492
499
|
"FormData",
|
|
500
|
+
"WeakMap",
|
|
493
501
|
"Blob",
|
|
494
502
|
"String",
|
|
495
503
|
"Object",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenExfiltrationDefense.js","sourceRoot":"","sources":["../../src/core/tokenExfiltrationDefense.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokenExfiltrationDefense.js","sourceRoot":"","sources":["../../src/core/tokenExfiltrationDefense.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,8 @@ export declare function getTokensPlaceholders(params: {
|
|
|
9
9
|
configId: string;
|
|
10
10
|
tokens: Tokens;
|
|
11
11
|
}): Tokens;
|
|
12
|
-
export declare function substitutePlaceholderByRealToken(
|
|
12
|
+
export declare function substitutePlaceholderByRealToken(params: {
|
|
13
|
+
text: string;
|
|
14
|
+
doEncodeUriComponent: boolean;
|
|
15
|
+
}): string;
|
|
13
16
|
export {};
|
|
@@ -40,7 +40,8 @@ export function getTokensPlaceholders(params) {
|
|
|
40
40
|
refreshToken: tokens.refreshToken === undefined ? undefined : `refresh_token_placeholder_${id}`
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
export function substitutePlaceholderByRealToken(
|
|
43
|
+
export function substitutePlaceholderByRealToken(params) {
|
|
44
|
+
const { text, doEncodeUriComponent } = params;
|
|
44
45
|
let text_modified = text;
|
|
45
46
|
for (const [tokenType, regExp] of [
|
|
46
47
|
["access_token", /access_token_placeholder_(\d+)/g],
|
|
@@ -57,15 +58,18 @@ export function substitutePlaceholderByRealToken(text) {
|
|
|
57
58
|
"is needed, it should be requested and used immediately."
|
|
58
59
|
].join(" "));
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
const token = (() => {
|
|
62
|
+
switch (tokenType) {
|
|
63
|
+
case "access_token":
|
|
64
|
+
return entry.tokens.accessToken;
|
|
65
|
+
case "id_token":
|
|
66
|
+
return entry.tokens.idToken;
|
|
67
|
+
case "refresh_token":
|
|
68
|
+
assert(entry.tokens.refreshToken !== undefined, "204392284");
|
|
69
|
+
return entry.tokens.refreshToken;
|
|
70
|
+
}
|
|
71
|
+
})();
|
|
72
|
+
return doEncodeUriComponent ? encodeURIComponent(token) : token;
|
|
69
73
|
});
|
|
70
74
|
}
|
|
71
75
|
return text_modified;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenPlaceholderSubstitution.js","sourceRoot":"","sources":["../../src/core/tokenPlaceholderSubstitution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC,MAAM,UAAU,8BAA8B;IAC1C,0BAA0B,GAAG,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,6BAA6B;IACzC,OAAO,0BAA0B,CAAC;AACtC,CAAC;AAQD,MAAM,OAAO,GAIP,EAAE,CAAC;AAET,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAS,CAAC,GAAG,OAAS,CAAC;AAEhE,MAAM,UAAU,qBAAqB,CAAC,MAA4C;IAC9E,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEpC,MAAM,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9B,SAAS;QACb,CAAC;QAED,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAErC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC,EAAE,KAAM,CAAC,CAAC;IACf,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAErB,MAAM,SAAS,GAA6B;QACxC,EAAE;QACF,QAAQ;QACR,MAAM,EAAE;YACJ,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;SACpC;KACJ,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAExB,OAAO;QACH,WAAW,EAAE,4BAA4B,EAAE,EAAE;QAC7C,OAAO,EAAE,wBAAwB,EAAE,EAAE;QACrC,YAAY,EAAE,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE;KAClG,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,
|
|
1
|
+
{"version":3,"file":"tokenPlaceholderSubstitution.js","sourceRoot":"","sources":["../../src/core/tokenPlaceholderSubstitution.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -51,7 +51,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params: {
|
|
|
51
51
|
|
|
52
52
|
const headers = new Headers();
|
|
53
53
|
request.headers.forEach((value, key) => {
|
|
54
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
54
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
55
|
+
text: value,
|
|
56
|
+
doEncodeUriComponent: false
|
|
57
|
+
});
|
|
55
58
|
|
|
56
59
|
if (nextValue !== value) {
|
|
57
60
|
didSubstitute = true;
|
|
@@ -77,7 +80,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params: {
|
|
|
77
80
|
}
|
|
78
81
|
|
|
79
82
|
if (typeof init.body === "string") {
|
|
80
|
-
body = substitutePlaceholderByRealToken(
|
|
83
|
+
body = substitutePlaceholderByRealToken({
|
|
84
|
+
text: init.body,
|
|
85
|
+
doEncodeUriComponent: false
|
|
86
|
+
});
|
|
81
87
|
|
|
82
88
|
if (init.body !== body) {
|
|
83
89
|
didSubstitute = true;
|
|
@@ -91,7 +97,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params: {
|
|
|
91
97
|
const next = new URLSearchParams();
|
|
92
98
|
|
|
93
99
|
init.body.forEach((value, key) => {
|
|
94
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
100
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
101
|
+
text: value,
|
|
102
|
+
doEncodeUriComponent: false
|
|
103
|
+
});
|
|
95
104
|
|
|
96
105
|
if (nextValue !== value) {
|
|
97
106
|
didUrlSearchParamsSubstitute = true;
|
|
@@ -115,7 +124,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params: {
|
|
|
115
124
|
|
|
116
125
|
init.body.forEach((value, key) => {
|
|
117
126
|
if (typeof value === "string") {
|
|
118
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
127
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
128
|
+
text: value,
|
|
129
|
+
doEncodeUriComponent: false
|
|
130
|
+
});
|
|
119
131
|
|
|
120
132
|
if (nextValue !== value) {
|
|
121
133
|
didFormDataSubstitute = true;
|
|
@@ -188,7 +200,10 @@ function patchFetchApiToSubstituteTokenPlaceholder(params: {
|
|
|
188
200
|
}
|
|
189
201
|
|
|
190
202
|
const bodyText = await request.clone().text();
|
|
191
|
-
const nextBodyText = substitutePlaceholderByRealToken(
|
|
203
|
+
const nextBodyText = substitutePlaceholderByRealToken({
|
|
204
|
+
text: bodyText,
|
|
205
|
+
doEncodeUriComponent: false
|
|
206
|
+
});
|
|
192
207
|
|
|
193
208
|
if (nextBodyText !== bodyText) {
|
|
194
209
|
didSubstitute = true;
|
|
@@ -197,6 +212,18 @@ function patchFetchApiToSubstituteTokenPlaceholder(params: {
|
|
|
197
212
|
body = nextBodyText;
|
|
198
213
|
}
|
|
199
214
|
|
|
215
|
+
let url: string;
|
|
216
|
+
|
|
217
|
+
{
|
|
218
|
+
const url_before = request.url;
|
|
219
|
+
|
|
220
|
+
url = substitutePlaceholderByRealToken({ text: url_before, doEncodeUriComponent: true });
|
|
221
|
+
|
|
222
|
+
if (url !== url_before) {
|
|
223
|
+
didSubstitute = true;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
200
227
|
block_authed_request_to_unauthorized_hostnames: {
|
|
201
228
|
if (!didSubstitute) {
|
|
202
229
|
break block_authed_request_to_unauthorized_hostnames;
|
|
@@ -248,7 +275,7 @@ function patchFetchApiToSubstituteTokenPlaceholder(params: {
|
|
|
248
275
|
}
|
|
249
276
|
}
|
|
250
277
|
|
|
251
|
-
return fetch_actual(
|
|
278
|
+
return fetch_actual(url, nextInit);
|
|
252
279
|
};
|
|
253
280
|
}
|
|
254
281
|
|
|
@@ -261,29 +288,7 @@ function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params: {
|
|
|
261
288
|
const send_actual = XMLHttpRequest.prototype.send;
|
|
262
289
|
const setRequestHeader_actual = XMLHttpRequest.prototype.setRequestHeader;
|
|
263
290
|
|
|
264
|
-
|
|
265
|
-
url: string;
|
|
266
|
-
didSubstitute: boolean;
|
|
267
|
-
};
|
|
268
|
-
|
|
269
|
-
const xhrDataSymbol = Symbol("oidc-spa XMLHttpRequest data");
|
|
270
|
-
|
|
271
|
-
const getXhrData = (xhr: XMLHttpRequest): XhrData => {
|
|
272
|
-
const xhr_any = xhr as any;
|
|
273
|
-
|
|
274
|
-
if (xhr_any[xhrDataSymbol] !== undefined) {
|
|
275
|
-
return xhr_any[xhrDataSymbol];
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
const data: XhrData = {
|
|
279
|
-
url: "",
|
|
280
|
-
didSubstitute: false
|
|
281
|
-
};
|
|
282
|
-
|
|
283
|
-
xhr_any[xhrDataSymbol] = data;
|
|
284
|
-
|
|
285
|
-
return data;
|
|
286
|
-
};
|
|
291
|
+
const stateByInstance = new WeakMap<XMLHttpRequest, { url: string; didSubstitute: boolean }>();
|
|
287
292
|
|
|
288
293
|
XMLHttpRequest.prototype.open = function open(
|
|
289
294
|
method: string,
|
|
@@ -292,10 +297,27 @@ function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params: {
|
|
|
292
297
|
username?: string | null,
|
|
293
298
|
password?: string | null
|
|
294
299
|
) {
|
|
295
|
-
const
|
|
300
|
+
const state = { url: "", didSubstitute: false };
|
|
296
301
|
|
|
297
|
-
|
|
298
|
-
|
|
302
|
+
{
|
|
303
|
+
const url_str = typeof url === "string" ? url : url.href;
|
|
304
|
+
state.url = substitutePlaceholderByRealToken({ text: url_str, doEncodeUriComponent: true });
|
|
305
|
+
if (url_str !== state.url) {
|
|
306
|
+
state.didSubstitute = true;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
stateByInstance.set(this, state);
|
|
311
|
+
|
|
312
|
+
prevent_fetching_of_hashed_js_assets: {
|
|
313
|
+
const { pathname } = new URL(state.url, window.location.href);
|
|
314
|
+
|
|
315
|
+
if (!viteHashedJsAssetPathRegExp.test(pathname)) {
|
|
316
|
+
break prevent_fetching_of_hashed_js_assets;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
throw new Error("oidc-spa: Blocked request to hashed static asset.");
|
|
320
|
+
}
|
|
299
321
|
|
|
300
322
|
if (async === undefined) {
|
|
301
323
|
return open_actual.bind(this)(method, url);
|
|
@@ -305,47 +327,45 @@ function patchXMLHttpRequestApiToSubstituteTokenPlaceholder(params: {
|
|
|
305
327
|
};
|
|
306
328
|
|
|
307
329
|
XMLHttpRequest.prototype.setRequestHeader = function setRequestHeader(name, value) {
|
|
308
|
-
const
|
|
309
|
-
|
|
330
|
+
const state = stateByInstance.get(this);
|
|
331
|
+
|
|
332
|
+
assert(state !== undefined, "29440283");
|
|
333
|
+
|
|
334
|
+
const nextValue = substitutePlaceholderByRealToken({ text: value, doEncodeUriComponent: false });
|
|
310
335
|
|
|
311
336
|
if (nextValue !== value) {
|
|
312
|
-
|
|
337
|
+
state.didSubstitute = true;
|
|
313
338
|
}
|
|
314
339
|
|
|
315
340
|
return setRequestHeader_actual.call(this, name, nextValue);
|
|
316
341
|
};
|
|
317
342
|
|
|
318
343
|
XMLHttpRequest.prototype.send = function send(body) {
|
|
319
|
-
const
|
|
344
|
+
const state = stateByInstance.get(this);
|
|
320
345
|
|
|
321
|
-
|
|
322
|
-
const { pathname } = new URL(xhrData.url, window.location.href);
|
|
323
|
-
|
|
324
|
-
if (!viteHashedJsAssetPathRegExp.test(pathname)) {
|
|
325
|
-
break prevent_fetching_of_hashed_js_assets;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
throw new Error("oidc-spa: Blocked request to hashed static asset.");
|
|
329
|
-
}
|
|
346
|
+
assert(state !== undefined, "32323484");
|
|
330
347
|
|
|
331
348
|
let nextBody = body;
|
|
332
349
|
|
|
333
350
|
if (typeof body === "string") {
|
|
334
|
-
const nextBodyText = substitutePlaceholderByRealToken(
|
|
351
|
+
const nextBodyText = substitutePlaceholderByRealToken({
|
|
352
|
+
text: body,
|
|
353
|
+
doEncodeUriComponent: false
|
|
354
|
+
});
|
|
335
355
|
|
|
336
356
|
if (nextBodyText !== body) {
|
|
337
|
-
|
|
357
|
+
state.didSubstitute = true;
|
|
338
358
|
}
|
|
339
359
|
|
|
340
360
|
nextBody = nextBodyText;
|
|
341
361
|
}
|
|
342
362
|
|
|
343
363
|
block_authed_request_to_unauthorized_hostnames: {
|
|
344
|
-
if (!
|
|
364
|
+
if (!state.didSubstitute) {
|
|
345
365
|
break block_authed_request_to_unauthorized_hostnames;
|
|
346
366
|
}
|
|
347
367
|
|
|
348
|
-
const { hostname } = new URL(
|
|
368
|
+
const { hostname } = new URL(state.url, window.location.href);
|
|
349
369
|
|
|
350
370
|
if (
|
|
351
371
|
getIsHostnameAuthorized({
|
|
@@ -389,43 +409,9 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params: {
|
|
|
389
409
|
|
|
390
410
|
const WebSocketPatched = function WebSocket(url: string | URL, protocols?: string | string[]) {
|
|
391
411
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
392
|
-
const nextUrl = substitutePlaceholderByRealToken(urlStr);
|
|
412
|
+
const nextUrl = substitutePlaceholderByRealToken({ text: urlStr, doEncodeUriComponent: true });
|
|
393
413
|
let didSubstitute = nextUrl !== urlStr;
|
|
394
414
|
|
|
395
|
-
const nextProtocols = (() => {
|
|
396
|
-
if (protocols === undefined) {
|
|
397
|
-
return protocols;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
if (typeof protocols === "string") {
|
|
401
|
-
const next = substitutePlaceholderByRealToken(protocols);
|
|
402
|
-
|
|
403
|
-
if (next !== protocols) {
|
|
404
|
-
didSubstitute = true;
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
return next;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
let didProtocolsSubstitute = false;
|
|
411
|
-
|
|
412
|
-
const next = protocols.map(protocol => {
|
|
413
|
-
const nextProtocol = substitutePlaceholderByRealToken(protocol);
|
|
414
|
-
|
|
415
|
-
if (nextProtocol !== protocol) {
|
|
416
|
-
didProtocolsSubstitute = true;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
return nextProtocol;
|
|
420
|
-
});
|
|
421
|
-
|
|
422
|
-
if (didProtocolsSubstitute) {
|
|
423
|
-
didSubstitute = true;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
return next;
|
|
427
|
-
})();
|
|
428
|
-
|
|
429
415
|
const { hostname, pathname } = new URL(nextUrl, window.location.href);
|
|
430
416
|
|
|
431
417
|
block_authed_request_to_unauthorized_hostnames: {
|
|
@@ -452,7 +438,7 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params: {
|
|
|
452
438
|
);
|
|
453
439
|
}
|
|
454
440
|
|
|
455
|
-
const ws = new WebSocket_actual(nextUrl,
|
|
441
|
+
const ws = new WebSocket_actual(nextUrl, protocols as Parameters<typeof WebSocket>[1]);
|
|
456
442
|
|
|
457
443
|
wsDataByWs.set(ws, {
|
|
458
444
|
url: nextUrl,
|
|
@@ -488,7 +474,10 @@ function patchWebSocketApiToSubstituteTokenPlaceholder(params: {
|
|
|
488
474
|
let nextData = data;
|
|
489
475
|
|
|
490
476
|
if (typeof data === "string") {
|
|
491
|
-
const nextDataText = substitutePlaceholderByRealToken(
|
|
477
|
+
const nextDataText = substitutePlaceholderByRealToken({
|
|
478
|
+
text: data,
|
|
479
|
+
doEncodeUriComponent: false
|
|
480
|
+
});
|
|
492
481
|
|
|
493
482
|
if (nextDataText !== data) {
|
|
494
483
|
wsData.didSubstitute = true;
|
|
@@ -549,7 +538,7 @@ function patchEventSourceApiToSubstituteTokenPlaceholder(params: {
|
|
|
549
538
|
eventSourceInitDict?: EventSourceInit
|
|
550
539
|
) {
|
|
551
540
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
552
|
-
const nextUrl = substitutePlaceholderByRealToken(urlStr);
|
|
541
|
+
const nextUrl = substitutePlaceholderByRealToken({ text: urlStr, doEncodeUriComponent: true });
|
|
553
542
|
const didSubstitute = nextUrl !== urlStr;
|
|
554
543
|
|
|
555
544
|
const { hostname } = new URL(nextUrl, window.location.href);
|
|
@@ -610,7 +599,7 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params: {
|
|
|
610
599
|
|
|
611
600
|
navigator.sendBeacon = function sendBeacon(url: string | URL, data?: BodyInit | null) {
|
|
612
601
|
const urlStr = typeof url === "string" ? url : url.href;
|
|
613
|
-
const nextUrl = substitutePlaceholderByRealToken(urlStr);
|
|
602
|
+
const nextUrl = substitutePlaceholderByRealToken({ text: urlStr, doEncodeUriComponent: true });
|
|
614
603
|
let didSubstitute = nextUrl !== urlStr;
|
|
615
604
|
|
|
616
605
|
const { hostname } = new URL(nextUrl, window.location.href);
|
|
@@ -618,7 +607,7 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params: {
|
|
|
618
607
|
let nextData = data;
|
|
619
608
|
|
|
620
609
|
if (typeof data === "string") {
|
|
621
|
-
const next = substitutePlaceholderByRealToken(data);
|
|
610
|
+
const next = substitutePlaceholderByRealToken({ text: data, doEncodeUriComponent: false });
|
|
622
611
|
|
|
623
612
|
if (next !== data) {
|
|
624
613
|
didSubstitute = true;
|
|
@@ -630,7 +619,10 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params: {
|
|
|
630
619
|
const next = new URLSearchParams();
|
|
631
620
|
|
|
632
621
|
data.forEach((value, key) => {
|
|
633
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
622
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
623
|
+
text: value,
|
|
624
|
+
doEncodeUriComponent: false
|
|
625
|
+
});
|
|
634
626
|
|
|
635
627
|
if (nextValue !== value) {
|
|
636
628
|
didUrlSearchParamsSubstitute = true;
|
|
@@ -649,7 +641,10 @@ function patchNavigatorSendBeaconApiToSubstituteTokenPlaceholder(params: {
|
|
|
649
641
|
|
|
650
642
|
data.forEach((value, key) => {
|
|
651
643
|
if (typeof value === "string") {
|
|
652
|
-
const nextValue = substitutePlaceholderByRealToken(
|
|
644
|
+
const nextValue = substitutePlaceholderByRealToken({
|
|
645
|
+
text: value,
|
|
646
|
+
doEncodeUriComponent: false
|
|
647
|
+
});
|
|
653
648
|
|
|
654
649
|
if (nextValue !== value) {
|
|
655
650
|
didFormDataSubstitute = true;
|
|
@@ -717,6 +712,7 @@ function runMonkeyPatchingPrevention() {
|
|
|
717
712
|
"ServiceWorkerRegistration",
|
|
718
713
|
"ServiceWorker",
|
|
719
714
|
"FormData",
|
|
715
|
+
"WeakMap",
|
|
720
716
|
"Blob",
|
|
721
717
|
"String",
|
|
722
718
|
"Object",
|
|
@@ -66,7 +66,12 @@ export function getTokensPlaceholders(params: { configId: string; tokens: Tokens
|
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
export function substitutePlaceholderByRealToken(
|
|
69
|
+
export function substitutePlaceholderByRealToken(params: {
|
|
70
|
+
text: string;
|
|
71
|
+
doEncodeUriComponent: boolean;
|
|
72
|
+
}): string {
|
|
73
|
+
const { text, doEncodeUriComponent } = params;
|
|
74
|
+
|
|
70
75
|
let text_modified = text;
|
|
71
76
|
|
|
72
77
|
for (const [tokenType, regExp] of [
|
|
@@ -89,15 +94,19 @@ export function substitutePlaceholderByRealToken(text: string): string {
|
|
|
89
94
|
);
|
|
90
95
|
}
|
|
91
96
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
const token = (() => {
|
|
98
|
+
switch (tokenType) {
|
|
99
|
+
case "access_token":
|
|
100
|
+
return entry.tokens.accessToken;
|
|
101
|
+
case "id_token":
|
|
102
|
+
return entry.tokens.idToken;
|
|
103
|
+
case "refresh_token":
|
|
104
|
+
assert(entry.tokens.refreshToken !== undefined, "204392284");
|
|
105
|
+
return entry.tokens.refreshToken;
|
|
106
|
+
}
|
|
107
|
+
})();
|
|
108
|
+
|
|
109
|
+
return doEncodeUriComponent ? encodeURIComponent(token) : token;
|
|
101
110
|
});
|
|
102
111
|
}
|
|
103
112
|
|