@netacea/netaceaintegrationbase 1.7.0 → 1.8.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.8.0](https://github.com/Netacea/JavascriptATAIntegration/compare/@netacea/netaceaintegrationbase@1.7.0...@netacea/netaceaintegrationbase@1.8.0) (2021-12-08)
7
+
8
+
9
+ ### Features
10
+
11
+ * **integrations:** PR-16: Bumped versions ([418e08b](https://github.com/Netacea/JavascriptATAIntegration/commit/418e08bac751b0df6c946c1f1c46fb3af3da3612))
12
+ * **integrations:** PR-31: allow mitata expiry to be configured ([218f0d1](https://github.com/Netacea/JavascriptATAIntegration/commit/218f0d10d3f06d998e7aa18755f73b4977958814))
13
+ * **integrations:** PR-31: remove useFakeTimers() where not necessary ([6db65f7](https://github.com/Netacea/JavascriptATAIntegration/commit/6db65f7aae72b0688b640a37134e29da8fe4f760))
14
+ * **intgegrations:** PR-31: rename mitata.valid to isPrimaryHashValid ([08eddec](https://github.com/Netacea/JavascriptATAIntegration/commit/08eddece2a8abb1641e94f93fb9b3e9ac5cec6cd))
15
+
16
+
17
+
18
+
19
+
6
20
  # [1.7.0](https://github.com/Netacea/JavascriptATAIntegration/compare/@netacea/netaceaintegrationbase@1.6.0...@netacea/netaceaintegrationbase@1.7.0) (2021-08-17)
7
21
 
8
22
 
@@ -33,6 +33,7 @@ export default abstract class NetaceaBase<RequestArgs = any, Response = any> {
33
33
  protected captchaSecretKey?: string;
34
34
  protected ingestType: NetaceaIngestType;
35
35
  protected readonly logVersion: NetaceaLogVersion;
36
+ protected mitataCookieExpirySeconds: number;
36
37
  private readonly mitigationServiceUrl;
37
38
  private readonly ingestServiceUrl;
38
39
  protected readonly mitigationType: NetaceaMitigationType;
@@ -42,7 +43,7 @@ export default abstract class NetaceaBase<RequestArgs = any, Response = any> {
42
43
  protected readonly kinesis?: NetaceaKinesis;
43
44
  abstract ingest(...args: any[]): Promise<any>;
44
45
  abstract getCookieHeader(args: RequestArgs): string | null | undefined;
45
- constructor({ apiKey, secretKey, timeout, retries, mitigationServiceUrl, ingestServiceUrl, mitigationType, captchaSiteKey, captchaSecretKey, ingestType, kinesis, logVersion }: NetaceaBaseArgs);
46
+ constructor({ apiKey, secretKey, timeout, retries, mitigationServiceUrl, ingestServiceUrl, mitigationType, captchaSiteKey, captchaSecretKey, ingestType, kinesis, logVersion, mitataCookieExpirySeconds }: NetaceaBaseArgs);
46
47
  runMitigation(args: RequestArgs): Promise<NetaceaMitigationResponse<Response>>;
47
48
  protected readCookie(cookieName: string, cookies: string | null | undefined): string | undefined;
48
49
  protected callIngest(args: IngestArgs): Promise<void>;
@@ -51,8 +52,9 @@ export default abstract class NetaceaBase<RequestArgs = any, Response = any> {
51
52
  private constructV1WebLog;
52
53
  protected constructWebLog(args: IngestArgs): WebLog | V2WebLog;
53
54
  protected check(netaceaCookie: string | undefined, clientIP: string, userAgent: string, captchaCookie?: string): Promise<ComposeResultResponse>;
55
+ private createMitata;
54
56
  private processCaptcha;
55
- private getCookiesFromHeaders;
57
+ private getMitataCaptchaFromHeaders;
56
58
  private makeCaptchaAPICall;
57
59
  private getApiCallResponseFromResponse;
58
60
  private buildCookieFromValues;
@@ -63,7 +65,7 @@ export default abstract class NetaceaBase<RequestArgs = any, Response = any> {
63
65
  protected APIError(response: APICallResponse): Error;
64
66
  protected isUrlCaptchaPost(url: string, method: string): boolean;
65
67
  protected processMitigateRequest(args: ProcessMitigateRequestArgs): Promise<ComposeResultResponse>;
66
- protected setWorkerCookie(userId: string | undefined, saltKey: string): NetaceaResponseBase;
68
+ protected setIngestOnlyMitataCookie(userId: string | undefined): NetaceaResponseBase;
67
69
  protected processIngest(args: RequestArgs): NetaceaResponseBase;
68
70
  }
69
71
  export {};
@@ -23,9 +23,15 @@ function safeParseInt(value, defaultValue = 0) {
23
23
  }
24
24
  const maximumRetries = 5;
25
25
  const defaultTimeout = 3000;
26
+ function configureMitataExpiry(mitigationType, expirySeconds) {
27
+ if (expirySeconds === undefined) {
28
+ return mitigationType === NetaceaBase_enums_1.NetaceaMitigationType.INGEST ? ONE_HOUR_IN_SECONDS : 60;
29
+ }
30
+ return expirySeconds;
31
+ }
26
32
  class NetaceaBase {
27
33
  // eslint-disable-next-line max-lines-per-function
28
- constructor({ apiKey, secretKey, timeout = defaultTimeout, retries = maximumRetries, mitigationServiceUrl = 'https://mitigations.netacea.net', ingestServiceUrl = 'https://ingest.netacea.net', mitigationType = NetaceaBase_enums_1.NetaceaMitigationType.INGEST, captchaSiteKey, captchaSecretKey, ingestType = NetaceaBase_enums_1.NetaceaIngestType.HTTP, kinesis, logVersion }) {
34
+ constructor({ apiKey, secretKey, timeout = defaultTimeout, retries = maximumRetries, mitigationServiceUrl = 'https://mitigations.netacea.net', ingestServiceUrl = 'https://ingest.netacea.net', mitigationType = NetaceaBase_enums_1.NetaceaMitigationType.INGEST, captchaSiteKey, captchaSecretKey, ingestType = NetaceaBase_enums_1.NetaceaIngestType.HTTP, kinesis, logVersion, mitataCookieExpirySeconds }) {
29
35
  if (apiKey === null || apiKey === undefined) {
30
36
  throw new Error('apiKey is a required parameter');
31
37
  }
@@ -54,6 +60,7 @@ class NetaceaBase {
54
60
  }
55
61
  this.timeout = correctTimeout(timeout);
56
62
  this.retries = correctRetries(retries);
63
+ this.mitataCookieExpirySeconds = configureMitataExpiry(mitigationType, mitataCookieExpirySeconds);
57
64
  }
58
65
  async runMitigation(args) {
59
66
  try {
@@ -194,20 +201,23 @@ class NetaceaBase {
194
201
  return this.constructV1WebLog(args);
195
202
  }
196
203
  async check(netaceaCookie, clientIP, userAgent, captchaCookie) {
204
+ var _a, _b;
197
205
  let status, match, mitigate, captcha, body, setCookie, eventId;
198
206
  if (this.secretKey === undefined) {
199
207
  throw new Error('Secret key is required to mitigate');
200
208
  }
201
- const cookieInfo = mitataCookie_1.checkCookie(netaceaCookie, this.secretKey);
202
- if (!cookieInfo.valid || cookieInfo.expired) {
209
+ const cookieInfo = mitataCookie_1.checkMitataCookie(netaceaCookie, clientIP, this.secretKey);
210
+ if (!cookieInfo.isPrimaryHashValid || cookieInfo.requiresReissue) {
203
211
  // Get latest mitigation information
204
- const result = await this.makeMitigateAPICall(netaceaCookie, clientIP, userAgent, captchaCookie);
212
+ const result = await this.makeMitigateAPICall((_a = cookieInfo.mitata) === null || _a === void 0 ? void 0 : _a.userId, clientIP, userAgent, captchaCookie);
205
213
  status = result.status;
206
214
  match = result.match;
207
215
  mitigate = result.mitigate;
208
216
  captcha = result.captcha;
209
217
  body = result.body;
210
- setCookie = result.setCookie;
218
+ setCookie = [
219
+ this.createMitata(clientIP, (_b = cookieInfo.mitata) === null || _b === void 0 ? void 0 : _b.userId, match, mitigate, captcha, result.mitataMaxAge)
220
+ ];
211
221
  eventId = result.eventId;
212
222
  }
213
223
  else {
@@ -220,38 +230,40 @@ class NetaceaBase {
220
230
  }
221
231
  return this.composeResult(body, setCookie, status, match, mitigate, captcha, false, eventId);
222
232
  }
233
+ createMitata(clientIP, userId, match, mitigate, captcha, maxAge = 86400, expiry = Math.floor(Date.now() / 1000) + this.mitataCookieExpirySeconds) {
234
+ if (this.secretKey === undefined) {
235
+ throw new Error('Cannot build cookie without secret key.');
236
+ }
237
+ const mitataCode = [match, mitigate, captcha].join('');
238
+ const mitataValue = mitataCookie_1.createMitataCookie(clientIP, userId, expiry, this.secretKey, mitataCode);
239
+ return this.buildCookieFromValues('_mitata', mitataValue, maxAge, '/');
240
+ }
223
241
  async processCaptcha(netaceaCookie, clientIP, userAgent, captchaData) {
224
242
  const { status, match, mitigate, captcha, body, setCookie } = await this.makeCaptchaAPICall(netaceaCookie, clientIP, userAgent, captchaData);
225
243
  return this.composeResult(body, setCookie, status, match, mitigate, captcha, true);
226
244
  }
227
- getCookiesFromHeaders(headers) {
228
- const setCookie = [];
229
- const mitata = headers[dictionary_1.netaceaHeaders.mitata];
230
- const mitataExpiry = parseInt(headers[dictionary_1.netaceaHeaders.mitataExpiry]);
231
- const mitataCookie = this.buildCookieFromValues('_mitata', mitata, mitataExpiry);
232
- if (mitataCookie !== undefined) {
233
- setCookie.push(mitataCookie);
234
- }
245
+ getMitataCaptchaFromHeaders(headers) {
235
246
  if (Object.prototype.hasOwnProperty.call(headers, dictionary_1.netaceaHeaders.mitataCaptcha)) {
236
247
  const mitataCaptcha = headers[dictionary_1.netaceaHeaders.mitataCaptcha];
237
248
  const mitataCaptchaExpiry = parseInt(headers[dictionary_1.netaceaHeaders.mitataCaptchaExpiry]);
238
249
  const mitataCaptchaCookie = this.buildCookieFromValues('_mitatacaptcha', mitataCaptcha, mitataCaptchaExpiry);
239
250
  if (mitataCaptchaCookie !== undefined) {
240
- setCookie.push(mitataCaptchaCookie);
251
+ return mitataCaptchaCookie;
241
252
  }
242
253
  }
243
- return setCookie;
254
+ return undefined;
244
255
  }
245
256
  async makeCaptchaAPICall(netaceaCookie, clientIP, userAgent, captchaData) {
246
257
  const headers = {
247
258
  'X-Netacea-API-Key': this.apiKey,
248
259
  'X-Netacea-Client-IP': clientIP,
249
260
  'user-agent': userAgent,
250
- 'cookie': this.buildCookieHeader({
251
- _mitata: netaceaCookie
252
- }),
253
261
  'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
254
262
  };
263
+ const mitata = mitataCookie_1.matchMitataCookie(netaceaCookie);
264
+ if (mitata !== undefined) {
265
+ headers['X-Netacea-UserId'] = mitata.userId;
266
+ }
255
267
  if (this.captchaSiteKey !== undefined && this.captchaSecretKey !== undefined) {
256
268
  headers['X-Netacea-Captcha-Site-Key'] = this.captchaSiteKey;
257
269
  headers['X-Netacea-Captcha-Secret-Key'] = this.captchaSecretKey;
@@ -264,16 +276,25 @@ class NetaceaBase {
264
276
  body: captchaData,
265
277
  timeout: this.timeout
266
278
  });
267
- return this.getApiCallResponseFromResponse(res);
279
+ return this.getApiCallResponseFromResponse(res, mitata === null || mitata === void 0 ? void 0 : mitata.userId, clientIP);
268
280
  }
269
- getApiCallResponseFromResponse(response) {
281
+ getApiCallResponseFromResponse(response, userId, clientIP) {
270
282
  if (response.status !== 200) {
271
283
  throw this.APIError(response);
272
284
  }
273
285
  const match = parseInt(response.headers[dictionary_1.netaceaHeaders.match]);
274
286
  const mitigate = parseInt(response.headers[dictionary_1.netaceaHeaders.mitigate]);
275
287
  const captcha = parseInt(response.headers[dictionary_1.netaceaHeaders.captcha]);
276
- const setCookie = this.getCookiesFromHeaders(response.headers);
288
+ let mitataMaxAge = parseInt(response.headers[dictionary_1.netaceaHeaders.mitataExpiry]);
289
+ if (isNaN(mitataMaxAge)) {
290
+ mitataMaxAge = 86400;
291
+ }
292
+ const mitata = this.createMitata(clientIP, userId, match, mitigate, captcha);
293
+ const mitataCaptcha = this.getMitataCaptchaFromHeaders(response.headers);
294
+ const setCookie = [
295
+ mitata,
296
+ mitataCaptcha
297
+ ].filter(c => c !== undefined);
277
298
  const eventId = response.headers[dictionary_1.netaceaHeaders.eventId];
278
299
  return {
279
300
  status: response.status,
@@ -282,14 +303,12 @@ class NetaceaBase {
282
303
  captcha,
283
304
  setCookie,
284
305
  body: response.body,
285
- eventId
306
+ eventId,
307
+ mitataMaxAge
286
308
  };
287
309
  }
288
310
  buildCookieFromValues(cookieName, value, maxAge, path = '/') {
289
- if (value !== undefined && maxAge !== undefined) {
290
- return `${cookieName}=${value}; Max-Age=${maxAge}; Path=${path}`;
291
- }
292
- return undefined;
311
+ return `${cookieName}=${value}; Max-Age=${maxAge}; Path=${path}`;
293
312
  }
294
313
  buildCookieHeader(cookies) {
295
314
  let cookiestr = '';
@@ -303,16 +322,18 @@ class NetaceaBase {
303
322
  }
304
323
  return cookiestr;
305
324
  }
306
- async makeMitigateAPICall(netaceaCookie, clientIP, userAgent, captchaCookie) {
325
+ async makeMitigateAPICall(userId, clientIP, userAgent, captchaCookie) {
307
326
  const headers = {
308
327
  'X-Netacea-API-Key': this.apiKey,
309
328
  'X-Netacea-Client-IP': clientIP,
310
329
  'user-agent': userAgent,
311
330
  'cookie': this.buildCookieHeader({
312
- _mitata: netaceaCookie,
313
331
  _mitatacaptcha: captchaCookie
314
332
  })
315
333
  };
334
+ if (userId !== undefined) {
335
+ headers['X-Netacea-UserId'] = userId;
336
+ }
316
337
  if (this.captchaSiteKey !== undefined && this.captchaSecretKey !== undefined) {
317
338
  headers['X-Netacea-Captcha-Site-Key'] = this.captchaSiteKey;
318
339
  headers['X-Netacea-Captcha-Secret-Key'] = this.captchaSecretKey;
@@ -324,7 +345,7 @@ class NetaceaBase {
324
345
  method: 'GET',
325
346
  timeout: this.timeout
326
347
  });
327
- return this.getApiCallResponseFromResponse(res);
348
+ return this.getApiCallResponseFromResponse(res, userId, clientIP);
328
349
  }
329
350
  composeResult(body, setCookie, status, match, mitigate, captcha, isCaptchaPost, eventId) {
330
351
  const bestMitigation = this.findBestMitigation(match, mitigate, captcha, isCaptchaPost);
@@ -410,35 +431,26 @@ class NetaceaBase {
410
431
  ? this.processCaptcha(args.mitata, args.clientIp, args.userAgent, await args.getBodyFn())
411
432
  : this.check(args.mitata, args.clientIp, args.userAgent, args.mitataCaptcha));
412
433
  }
413
- setWorkerCookie(userId, saltKey) {
414
- const expiryTime = Math.floor(Date.now() / 1000) + ONE_HOUR_IN_SECONDS;
415
- const userCookie = mitataCookie_1.createWorkerCookie(userId, expiryTime, saltKey);
416
- const mitataCookie = this.buildCookieFromValues('_mitata', userCookie, ONE_DAY_IN_SECONDS);
417
- const setCookie = [];
418
- if (mitataCookie !== undefined) {
419
- setCookie.push(mitataCookie);
420
- }
434
+ setIngestOnlyMitataCookie(userId) {
435
+ const mitataCookie = this.createMitata(mitataCookie_1.ingestIgnoredIpValue, userId, 0, 0, 0, ONE_DAY_IN_SECONDS);
421
436
  return {
422
437
  sessionStatus: '',
423
- setCookie
438
+ setCookie: [mitataCookie]
424
439
  };
425
440
  }
426
441
  processIngest(args) {
442
+ var _a;
427
443
  if (this.secretKey === undefined) {
428
444
  throw new Error('Secret key is required for ingest');
429
445
  }
430
446
  const cookies = this.getCookieHeader(args);
431
447
  const netaceaCookie = this.readCookie('_mitata', cookies);
432
- if (netaceaCookie === undefined) {
433
- return this.setWorkerCookie(undefined, this.secretKey);
434
- }
435
- const cookieInfo = mitataCookie_1.checkCookie(netaceaCookie, this.secretKey);
436
- if (!cookieInfo.valid) {
437
- return this.setWorkerCookie(undefined, this.secretKey);
448
+ const cookieInfo = mitataCookie_1.checkMitataCookie(netaceaCookie, mitataCookie_1.ingestIgnoredIpValue, this.secretKey);
449
+ if (!cookieInfo.isPrimaryHashValid) {
450
+ return this.setIngestOnlyMitataCookie(undefined);
438
451
  }
439
- if (cookieInfo.expired) {
440
- const mitata = mitataCookie_1.matchMitataCookie(netaceaCookie);
441
- return this.setWorkerCookie(mitata === null || mitata === void 0 ? void 0 : mitata.userId, this.secretKey);
452
+ if (cookieInfo.requiresReissue) {
453
+ return this.setIngestOnlyMitataCookie((_a = cookieInfo.mitata) === null || _a === void 0 ? void 0 : _a.userId);
442
454
  }
443
455
  return {
444
456
  sessionStatus: '',
@@ -1 +1 @@
1
- {"version":3,"file":"NetaceaBase.js","sourceRoot":"","sources":["../src/NetaceaBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetaceaBase.js","sourceRoot":"","sources":["../src/NetaceaBase.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ export interface NetaceaBaseArgs {
30
30
  ingestType?: NetaceaIngestType;
31
31
  kinesis?: KinesisIngestConfigArgs;
32
32
  logVersion?: NetaceaLogVersion;
33
+ mitataCookieExpirySeconds?: number;
33
34
  }
34
35
  export interface InjectHeaders {
35
36
  'x-netacea-match': string;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import NetaceaBase from './NetaceaBase';
2
2
  export * from './NetaceaBase.enums';
3
3
  export * from './NetaceaBase.types';
4
- export { MitataCookie, matchMitataCookie } from './mitataCookie';
4
+ export { MitataCookie, CheckCookieResponse, matchMitataCookie, checkMitataCookie, createMitataCookie, hexSha256, ingestIgnoredIpValue } from './mitataCookie';
5
5
  export default NetaceaBase;
package/dist/index.js CHANGED
@@ -15,5 +15,9 @@ __exportStar(require("./NetaceaBase.enums"), exports);
15
15
  __exportStar(require("./NetaceaBase.types"), exports);
16
16
  var mitataCookie_1 = require("./mitataCookie");
17
17
  Object.defineProperty(exports, "matchMitataCookie", { enumerable: true, get: function () { return mitataCookie_1.matchMitataCookie; } });
18
+ Object.defineProperty(exports, "checkMitataCookie", { enumerable: true, get: function () { return mitataCookie_1.checkMitataCookie; } });
19
+ Object.defineProperty(exports, "createMitataCookie", { enumerable: true, get: function () { return mitataCookie_1.createMitataCookie; } });
20
+ Object.defineProperty(exports, "hexSha256", { enumerable: true, get: function () { return mitataCookie_1.hexSha256; } });
21
+ Object.defineProperty(exports, "ingestIgnoredIpValue", { enumerable: true, get: function () { return mitataCookie_1.ingestIgnoredIpValue; } });
18
22
  exports.default = NetaceaBase_1.default;
19
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAuC;AACvC,sDAAmC;AACnC,sDAAmC;AACnC,+CAGuB;AADrB,iHAAA,iBAAiB,OAAA;AAGnB,kBAAe,qBAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAuC;AACvC,sDAAmC;AACnC,sDAAmC;AACnC,+CAQuB;AALrB,iHAAA,iBAAiB,OAAA;AACjB,iHAAA,iBAAiB,OAAA;AACjB,kHAAA,kBAAkB,OAAA;AAClB,yGAAA,SAAS,OAAA;AACT,oHAAA,oBAAoB,OAAA;AAGtB,kBAAe,qBAAW,CAAA"}
@@ -1,22 +1,26 @@
1
+ export declare const ingestIgnoredIpValue = "ignored";
1
2
  export interface MitataCookie {
2
3
  signature: string;
3
4
  expiry: string;
4
5
  userId: string;
6
+ ipHash: string;
5
7
  mitigationType: string;
6
8
  match: number;
7
9
  mitigate: number;
8
10
  captcha: number;
9
11
  }
10
- interface CheckCookieResponse {
11
- expired: boolean;
12
- valid: boolean;
12
+ export interface CheckCookieResponse {
13
+ mitata: MitataCookie | undefined;
14
+ requiresReissue: boolean;
15
+ isExpired: boolean;
16
+ isSameIP: boolean;
17
+ isPrimaryHashValid: boolean;
13
18
  match: number;
14
19
  mitigate: number;
15
20
  captcha: number;
16
21
  }
17
22
  export declare function matchMitataCookie(netaceaCookie: string | undefined): MitataCookie | undefined;
18
23
  export declare function generateId(length?: number, charset?: string[]): string;
19
- export declare function createWorkerCookie(userId: string | undefined, expiryTime: number, saltKey: string): string;
24
+ export declare function createMitataCookie(clientIP: string, userId: string | undefined, expiryTime: number, saltKey: string, mitCode?: string): string;
20
25
  export declare function hexSha256(value: string, saltKey: string): string;
21
- export declare function checkCookie(netaceaCookie: string | undefined, secretKey: string): CheckCookieResponse;
22
- export {};
26
+ export declare function checkMitataCookie(netaceaCookie: string | undefined, clientIP: string, secretKey: string): CheckCookieResponse;
@@ -1,21 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkCookie = exports.hexSha256 = exports.createWorkerCookie = exports.generateId = exports.matchMitataCookie = void 0;
3
+ exports.checkMitataCookie = exports.hexSha256 = exports.createMitataCookie = exports.generateId = exports.matchMitataCookie = exports.ingestIgnoredIpValue = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  const dictionary_1 = require("./dictionary");
6
+ // Using clientIP has no advantage when setting cookies in Ingest Only mode.
7
+ // We therefore use a dummy value in place of the IP.
8
+ // This brings its own advantage in that if the integration is switched
9
+ // from INGEST to MITIGATE, then the INGEST cookie will be treated as expired
10
+ // & a new MITIGATE cookie will be set
11
+ exports.ingestIgnoredIpValue = 'ignored';
6
12
  const BASE_62_CHARSET = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
7
- const mitataCookieRegExp = /(.*)_\/@#\/(.*)_\/@#\/(.*)_\/@#\/((\d)(\d)(\d))/;
13
+ const mitataCookieRegExp = /^(.*)_\/@#\/(.*)_\/@#\/(.*)_\/@#\/(.*)_\/@#\/((\d)(\d)(\d))$/;
8
14
  function matchMitataCookie(netaceaCookie) {
9
15
  if (netaceaCookie === undefined) {
10
16
  return undefined;
11
17
  }
12
18
  const matches = netaceaCookie.match(mitataCookieRegExp);
13
19
  if (matches !== null && matches !== undefined) {
14
- const [, signature, expiry, userId, mitigationType, match, mitigate, captcha] = matches;
20
+ const [, signature, expiry, userId, ipHash, mitigationType, match, mitigate, captcha] = matches;
15
21
  return {
16
22
  signature,
17
23
  expiry,
18
24
  userId,
25
+ ipHash,
19
26
  mitigationType,
20
27
  match: parseInt(match),
21
28
  mitigate: parseInt(mitigate),
@@ -33,27 +40,35 @@ function generateId(length = 16, charset = BASE_62_CHARSET) {
33
40
  return `c${randomString}`;
34
41
  }
35
42
  exports.generateId = generateId;
36
- function createWorkerCookie(userId, expiryTime, saltKey) {
37
- const ingestCookieValue = '000';
43
+ function createMitataCookie(clientIP, userId, expiryTime, saltKey, mitCode = '000') {
38
44
  if (userId === undefined) {
39
45
  userId = generateId();
40
46
  }
41
- const originCookieValue = `${expiryTime}${dictionary_1.COOKIEDELIMITER}${userId}${dictionary_1.COOKIEDELIMITER}${ingestCookieValue}`;
47
+ const ipHash = hexSha256(clientIP + '|' + String(expiryTime), saltKey);
48
+ const originCookieValue = [
49
+ expiryTime,
50
+ userId,
51
+ ipHash,
52
+ mitCode
53
+ ].join(dictionary_1.COOKIEDELIMITER);
42
54
  const value = hexSha256(originCookieValue, saltKey);
43
55
  const cookieValue = `${value}${dictionary_1.COOKIEDELIMITER}${originCookieValue}`;
44
56
  return cookieValue;
45
57
  }
46
- exports.createWorkerCookie = createWorkerCookie;
58
+ exports.createMitataCookie = createMitataCookie;
47
59
  function hexSha256(value, saltKey) {
48
60
  const hash = crypto_1.createHmac('sha256', saltKey);
49
61
  hash.update(value);
50
62
  return Buffer.from(hash.digest('hex')).toString('base64');
51
63
  }
52
64
  exports.hexSha256 = hexSha256;
53
- function checkCookie(netaceaCookie, secretKey) {
65
+ function checkMitataCookie(netaceaCookie, clientIP, secretKey) {
54
66
  const defaultInvalidResponse = {
55
- expired: false,
56
- valid: false,
67
+ mitata: undefined,
68
+ requiresReissue: false,
69
+ isExpired: false,
70
+ isSameIP: false,
71
+ isPrimaryHashValid: false,
57
72
  captcha: 0,
58
73
  match: 0,
59
74
  mitigate: 0
@@ -65,16 +80,19 @@ function checkCookie(netaceaCookie, secretKey) {
65
80
  if (mitata !== undefined) {
66
81
  // Check cookie signature
67
82
  const mitSvcStringValue = [
68
- mitata.expiry, mitata.userId, mitata.mitigationType
83
+ mitata.expiry, mitata.userId, mitata.ipHash, mitata.mitigationType
69
84
  ].join(dictionary_1.COOKIEDELIMITER);
70
- const mitSvcHMAC = crypto_1.createHmac('sha256', secretKey)
71
- .update(mitSvcStringValue)
72
- .digest('hex');
73
- const expired = Math.floor(Date.now() / 1000) > parseInt(mitata.expiry);
74
- const valid = mitata.signature === Buffer.from(mitSvcHMAC).toString('base64');
85
+ const currentUnixTime = Math.floor(Date.now() / 1000);
86
+ const isExpired = parseInt(mitata.expiry) < currentUnixTime;
87
+ const currentIPHash = hexSha256(clientIP + '|' + mitata.expiry, secretKey);
88
+ const isSameIP = mitata.ipHash === currentIPHash;
89
+ const valid = mitata.signature === hexSha256(mitSvcStringValue, secretKey);
75
90
  return {
76
- expired,
77
- valid,
91
+ mitata,
92
+ requiresReissue: isExpired || !isSameIP,
93
+ isExpired,
94
+ isSameIP,
95
+ isPrimaryHashValid: valid,
78
96
  match: mitata.match,
79
97
  mitigate: mitata.mitigate,
80
98
  captcha: mitata.captcha
@@ -82,5 +100,5 @@ function checkCookie(netaceaCookie, secretKey) {
82
100
  }
83
101
  return defaultInvalidResponse;
84
102
  }
85
- exports.checkCookie = checkCookie;
103
+ exports.checkMitataCookie = checkMitataCookie;
86
104
  //# sourceMappingURL=mitataCookie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mitataCookie.js","sourceRoot":"","sources":["../src/mitataCookie.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mitataCookie.js","sourceRoot":"","sources":["../src/mitataCookie.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netacea/netaceaintegrationbase",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Base package for Netacea CDN integrations.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,5 +29,5 @@
29
29
  "dependencies": {
30
30
  "@netacea/kinesisingest": "^1.2.0"
31
31
  },
32
- "gitHead": "fd76abd9cd2eea20f5d6c920e597feb4fb768976"
32
+ "gitHead": "6d74abf51f87a9b2cf94c4e0443df06eb5995bf5"
33
33
  }