@netacea/akamai 4.5.4 → 4.5.6
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 +16 -0
- package/dist/package.json +8 -8
- package/dist/src/Akamai.d.ts +3 -2
- package/dist/src/Akamai.js +76 -95
- package/dist/src/Akamai.js.map +1 -1
- package/dist/src/akamaiCrypto.js +2 -27
- package/dist/src/akamaiCrypto.js.map +1 -1
- package/dist/src/akamaiEncoding.js +3 -29
- package/dist/src/akamaiEncoding.js.map +1 -1
- package/dist/src/hash.js +8 -16
- package/dist/src/hash.js.map +1 -1
- package/dist/src/index.js +3 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/mitataCookie.js +20 -29
- package/dist/src/mitataCookie.js.map +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
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
|
+
## 4.5.6 (2023-03-24)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @netacea/akamai
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 4.5.5 (2023-03-23)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @netacea/akamai
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## 4.5.4 (2023-03-22)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @netacea/akamai
|
package/dist/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netacea/akamai",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.6",
|
|
4
4
|
"description": "Netacea Akamai CDN Integration",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "npm run test:unit && npm run test:integration",
|
|
9
|
-
"test:integration": "npx nyc -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
|
-
"test:unit": "npx nyc -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './unit_tests/*.test.ts'",
|
|
11
|
-
"test:regression": "npx nyc -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './regression_tests/*.test.ts'",
|
|
9
|
+
"test:integration": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
|
+
"test:unit": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './unit_tests/*.test.ts'",
|
|
11
|
+
"test:regression": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './regression_tests/*.test.ts'",
|
|
12
12
|
"lint": "npx eslint . --ext ts",
|
|
13
13
|
"lint:fix": "npx eslint . --ext ts --fix",
|
|
14
14
|
"prepublishOnly": "npx tsc --project tsconfig.build.json"
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"license": "ISC",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@netacea/netaceaintegrationbase": "^1.16.
|
|
23
|
-
"@netacea/netaceaintegrationtestrunner": "^1.7.
|
|
22
|
+
"@netacea/netaceaintegrationbase": "^1.16.6",
|
|
23
|
+
"@netacea/netaceaintegrationtestrunner": "^1.7.6",
|
|
24
24
|
"buffer": "^6.0.3",
|
|
25
25
|
"jssha": "^3.3.0"
|
|
26
26
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@rollup/plugin-commonjs": "^21.0.0",
|
|
29
29
|
"@rollup/plugin-node-resolve": "^13.0.5",
|
|
30
30
|
"@rollup/plugin-typescript": "^8.2.5",
|
|
31
|
-
"@types/akamai-edgeworkers": "^1.1.
|
|
31
|
+
"@types/akamai-edgeworkers": "^1.1.7",
|
|
32
32
|
"@types/aws4": "^1.11.0",
|
|
33
33
|
"@types/crypto-js": "^4.0.2",
|
|
34
34
|
"@types/node": "^18.15.3",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"tslib": "^2.0.3",
|
|
63
63
|
"typescript": "^4.0.3"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "9c8eaf54977241f73b2299dc6959c10a0c61467f"
|
|
66
66
|
}
|
package/dist/src/Akamai.d.ts
CHANGED
|
@@ -25,13 +25,13 @@ export default class Akamai implements NetaceaWorker<RequestArgs, Response> {
|
|
|
25
25
|
protected secretKey?: string;
|
|
26
26
|
protected mitigationServiceUrl: string;
|
|
27
27
|
protected ingestServiceUrl: string;
|
|
28
|
+
protected netaceaCookieName: string;
|
|
29
|
+
protected netaceaCaptchaCookieName: string;
|
|
28
30
|
protected readonly timeout: number;
|
|
29
31
|
protected readonly captchaSiteKey?: string;
|
|
30
32
|
protected readonly captchaSecretKey?: string;
|
|
31
33
|
protected readonly logVersion: NetaceaLogVersion;
|
|
32
34
|
protected readonly encryptedCookies: string[];
|
|
33
|
-
protected readonly netaceaCookieName: string;
|
|
34
|
-
protected readonly netaceaCaptchaCookieName: string;
|
|
35
35
|
protected ingestType: NetaceaIngestType;
|
|
36
36
|
protected mitigationType: NetaceaMitigationType;
|
|
37
37
|
enableMitigationProxyPass: boolean;
|
|
@@ -44,6 +44,7 @@ export default class Akamai implements NetaceaWorker<RequestArgs, Response> {
|
|
|
44
44
|
private populateKeys;
|
|
45
45
|
private configureApiEndpoints;
|
|
46
46
|
private configureIngestAndMitigationTypes;
|
|
47
|
+
private configureCookieNames;
|
|
47
48
|
private initConfiguration;
|
|
48
49
|
private handleMitResult;
|
|
49
50
|
inject(request: EW.IngressClientRequest): Promise<InjectResponse>;
|
package/dist/src/Akamai.js
CHANGED
|
@@ -1,58 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const netaceaintegrationbase_1 = require("@netacea/netaceaintegrationbase");
|
|
27
|
-
const mitataCookie_1 = require("./mitataCookie");
|
|
28
|
-
const pack = __importStar(require("../package.json"));
|
|
29
|
-
const http_request_1 = require("http-request");
|
|
30
|
-
const log_1 = require("log");
|
|
1
|
+
import { NetaceaMitigationType, matchMitataCookie, NetaceaIngestType, warmupCookie, NetaceaLogVersion, correctTimeout, dictionary, safeParseInt, ingestIgnoredIpValue } from '@netacea/netaceaintegrationbase';
|
|
2
|
+
import { createMitataCookie, checkMitataCookie, generateId } from './mitataCookie';
|
|
3
|
+
import * as pack from '../package.json';
|
|
4
|
+
import { httpRequest } from 'http-request';
|
|
5
|
+
import { logger } from 'log';
|
|
31
6
|
const ONE_HOUR_IN_SECONDS = 60 * 60;
|
|
32
7
|
const ONE_DAY_IN_SECONDS = ONE_HOUR_IN_SECONDS * 24;
|
|
33
|
-
const DEFAULT_MITIGATION_TYPE =
|
|
34
|
-
const DEFAULT_INGEST_TYPE =
|
|
8
|
+
const DEFAULT_MITIGATION_TYPE = NetaceaMitigationType.MITIGATE;
|
|
9
|
+
const DEFAULT_INGEST_TYPE = NetaceaIngestType.HTTP;
|
|
35
10
|
const protoMitataVariableName = 'PMUSER_NETACEA_PROTO_MITATA';
|
|
36
11
|
function configureMitataExpiry(mitigationType, expirySeconds) {
|
|
37
12
|
if (expirySeconds === undefined) {
|
|
38
|
-
return mitigationType ===
|
|
13
|
+
return mitigationType === NetaceaMitigationType.INGEST ? 3600 : 60;
|
|
39
14
|
}
|
|
40
15
|
return expirySeconds;
|
|
41
16
|
}
|
|
42
|
-
class Akamai {
|
|
17
|
+
export default class Akamai {
|
|
43
18
|
constructor(args) {
|
|
44
19
|
this.encryptedCookies = [];
|
|
45
20
|
this.enableMitigationProxyPass = true;
|
|
46
21
|
this.enableIngestProxyPass = true;
|
|
47
|
-
const { apiKey, secretKey, timeout = 3000, mitigationServiceUrl = 'https://mitigations.netacea.net', ingestServiceUrl = 'https://ingest.netacea.net', mitigationType =
|
|
22
|
+
const { apiKey, secretKey, timeout = 3000, mitigationServiceUrl = 'https://mitigations.netacea.net', ingestServiceUrl = 'https://ingest.netacea.net', mitigationType = NetaceaMitigationType.INGEST, captchaSiteKey, captchaSecretKey, ingestType = NetaceaIngestType.HTTP, kinesis, logVersion, mitataCookieExpirySeconds, netaceaCookieExpirySeconds, netaceaCookieName, netaceaCaptchaCookieName } = args;
|
|
48
23
|
this.apiKey = apiKey ?? '';
|
|
49
24
|
this.secretKey = secretKey ?? '';
|
|
50
25
|
this.mitigationServiceUrl = mitigationServiceUrl;
|
|
51
26
|
this.ingestServiceUrl = ingestServiceUrl;
|
|
52
27
|
this.mitigationType = mitigationType;
|
|
53
|
-
this.ingestType = ingestType ??
|
|
54
|
-
this.logVersion = logVersion ??
|
|
55
|
-
if (this.ingestType ===
|
|
28
|
+
this.ingestType = ingestType ?? NetaceaIngestType.HTTP;
|
|
29
|
+
this.logVersion = logVersion ?? NetaceaLogVersion.V1;
|
|
30
|
+
if (this.ingestType === NetaceaIngestType.KINESIS) {
|
|
56
31
|
if (kinesis === undefined) {
|
|
57
32
|
console.warn(`NETACEA WARN: no kinesis args provided, when ingestType is ${this.ingestType}`);
|
|
58
33
|
}
|
|
@@ -63,7 +38,7 @@ class Akamai {
|
|
|
63
38
|
this.captchaSiteKey = captchaSiteKey;
|
|
64
39
|
this.captchaSecretKey = captchaSecretKey;
|
|
65
40
|
}
|
|
66
|
-
this.timeout =
|
|
41
|
+
this.timeout = correctTimeout(timeout);
|
|
67
42
|
this.netaceaCookieName = netaceaCookieName ?? '_mitata';
|
|
68
43
|
this.netaceaCaptchaCookieName = netaceaCaptchaCookieName ?? '_mitatacaptcha';
|
|
69
44
|
this.encryptedCookies = [
|
|
@@ -75,7 +50,7 @@ class Akamai {
|
|
|
75
50
|
this.ingestType = args.ingestType ?? DEFAULT_INGEST_TYPE;
|
|
76
51
|
this.useSecretKeyFromAkamaiVariable = !Boolean(args.secretKey);
|
|
77
52
|
this.useApiKeyFromAkamaiVariable = !Boolean(args.apiKey);
|
|
78
|
-
|
|
53
|
+
checkMitataCookie(warmupCookie.cookie, warmupCookie.clientIP, warmupCookie.secretKey);
|
|
79
54
|
}
|
|
80
55
|
async requestHandler(request) {
|
|
81
56
|
this.initConfiguration(request);
|
|
@@ -91,8 +66,8 @@ class Akamai {
|
|
|
91
66
|
try {
|
|
92
67
|
const protoMitata = this.getProtoMitataFromRequestVar(request);
|
|
93
68
|
const cookieHeader = this.getHeaderValueOrDefault(request, 'cookie');
|
|
94
|
-
const mitataCookie = await this.readCookie(
|
|
95
|
-
const cookieInfo =
|
|
69
|
+
const mitataCookie = await this.readCookie(this.netaceaCookieName, cookieHeader);
|
|
70
|
+
const cookieInfo = matchMitataCookie(mitataCookie);
|
|
96
71
|
const userId = protoMitata?.userId ?? cookieInfo?.userId ?? '';
|
|
97
72
|
const match = protoMitata?.match ?? cookieInfo?.match ?? 0;
|
|
98
73
|
const mitigate = protoMitata?.mitigate ?? cookieInfo?.mitigate ?? 0;
|
|
@@ -132,16 +107,23 @@ class Akamai {
|
|
|
132
107
|
configureIngestAndMitigationTypes(request) {
|
|
133
108
|
const fetchedIngestType = String(request.getVariable('PMUSER_NETACEA_INGEST_TYPE'));
|
|
134
109
|
const fetchedMitigationType = String(request.getVariable('PMUSER_NETACEA_MITIGATION_TYPE'));
|
|
135
|
-
this.ingestType =
|
|
136
|
-
this.mitigationType =
|
|
110
|
+
this.ingestType = NetaceaIngestType[fetchedIngestType] ?? this.ingestType;
|
|
111
|
+
this.mitigationType = NetaceaMitigationType[fetchedMitigationType] ?? this.mitigationType;
|
|
137
112
|
if (fetchedMitigationType !== undefined) {
|
|
138
113
|
this.mitataCookieExpirySeconds = configureMitataExpiry(this.mitigationType, undefined);
|
|
139
114
|
}
|
|
140
115
|
}
|
|
116
|
+
configureCookieNames(request) {
|
|
117
|
+
const fetchedCookieName = request.getVariable('PMUSER_NETACEA_COOKIE_NAME');
|
|
118
|
+
const fetchedCaptchaCookieName = request.getVariable('PMUSER_NETACEA_CAPT_COOKIE_NAME');
|
|
119
|
+
this.netaceaCookieName = fetchedCookieName ?? this.netaceaCookieName;
|
|
120
|
+
this.netaceaCaptchaCookieName = fetchedCaptchaCookieName ?? this.netaceaCaptchaCookieName;
|
|
121
|
+
}
|
|
141
122
|
initConfiguration(request) {
|
|
142
123
|
this.populateKeys(request);
|
|
143
124
|
this.configureApiEndpoints(request);
|
|
144
125
|
this.configureIngestAndMitigationTypes(request);
|
|
126
|
+
this.configureCookieNames(request);
|
|
145
127
|
}
|
|
146
128
|
async handleMitResult(request) {
|
|
147
129
|
const mitResult = await this.runMitigation(request);
|
|
@@ -209,12 +191,12 @@ class Akamai {
|
|
|
209
191
|
const cookieString = setCookie.length !== 0
|
|
210
192
|
? setCookie?.join('; ')
|
|
211
193
|
: this.getHeaderValueOrDefault(request, 'cookie');
|
|
212
|
-
let mitata = await this.readCookie(
|
|
194
|
+
let mitata = await this.readCookie(this.netaceaCookieName, cookieString) ?? '';
|
|
213
195
|
if (mitata === undefined || mitata === '') {
|
|
214
196
|
const cookieString = this.getHeaderValueOrDefault(request, 'cookie');
|
|
215
|
-
mitata = await this.readCookie(
|
|
197
|
+
mitata = await this.readCookie(this.netaceaCookieName, cookieString) ?? '';
|
|
216
198
|
}
|
|
217
|
-
const { match, mitigate, captcha } =
|
|
199
|
+
const { match, mitigate, captcha } = matchMitataCookie(mitata) ?? {
|
|
218
200
|
match: 0,
|
|
219
201
|
mitigate: 0,
|
|
220
202
|
captcha: 0
|
|
@@ -242,8 +224,8 @@ class Akamai {
|
|
|
242
224
|
}
|
|
243
225
|
}
|
|
244
226
|
logError(msg) {
|
|
245
|
-
if (
|
|
246
|
-
|
|
227
|
+
if (logger !== undefined) {
|
|
228
|
+
logger.log(msg);
|
|
247
229
|
}
|
|
248
230
|
}
|
|
249
231
|
async makeRequest({ host, method, path, headers, body }) {
|
|
@@ -271,7 +253,7 @@ class Akamai {
|
|
|
271
253
|
}
|
|
272
254
|
url = host + path;
|
|
273
255
|
}
|
|
274
|
-
const response = await
|
|
256
|
+
const response = await httpRequest(url, {
|
|
275
257
|
body,
|
|
276
258
|
headers,
|
|
277
259
|
method,
|
|
@@ -341,7 +323,7 @@ class Akamai {
|
|
|
341
323
|
]);
|
|
342
324
|
}
|
|
343
325
|
this.removeNetaceaHeaders(response);
|
|
344
|
-
if (this.ingestType ===
|
|
326
|
+
if (this.ingestType === NetaceaIngestType.HTTP) {
|
|
345
327
|
await this.ingest(request, response);
|
|
346
328
|
}
|
|
347
329
|
}
|
|
@@ -353,12 +335,12 @@ class Akamai {
|
|
|
353
335
|
request.setVariable(protoMitataVariableName, protoMitata);
|
|
354
336
|
}
|
|
355
337
|
}
|
|
356
|
-
if (this.mitigationType ===
|
|
338
|
+
if (this.mitigationType === NetaceaMitigationType.INJECT) {
|
|
357
339
|
const result = mitResult;
|
|
358
340
|
injectHeaders = result.injectHeaders ?? {};
|
|
359
341
|
}
|
|
360
342
|
let mitHeaders = {};
|
|
361
|
-
if (this.ingestType ===
|
|
343
|
+
if (this.ingestType === NetaceaIngestType.ORIGIN) {
|
|
362
344
|
mitHeaders = await this.getMitHeaders(request, mitResult);
|
|
363
345
|
}
|
|
364
346
|
for (const [key, value] of Object.entries({ ...injectHeaders, ...mitHeaders })) {
|
|
@@ -374,8 +356,8 @@ class Akamai {
|
|
|
374
356
|
}
|
|
375
357
|
async getMitigationResponse(request) {
|
|
376
358
|
const cookies = this.getHeaderValueOrDefault(request, 'cookie');
|
|
377
|
-
const mitataCookie = await this.readCookie(
|
|
378
|
-
const mitataCaptcha = await this.readCookie(
|
|
359
|
+
const mitataCookie = await this.readCookie(this.netaceaCookieName, cookies) ?? '';
|
|
360
|
+
const mitataCaptcha = await this.readCookie(this.netaceaCaptchaCookieName, cookies);
|
|
379
361
|
const clientIp = this.getIP(request);
|
|
380
362
|
const userAgent = this.getHeaderValueOrDefault(request, 'user-agent');
|
|
381
363
|
return await this.processMitigateRequest({
|
|
@@ -390,8 +372,8 @@ class Akamai {
|
|
|
390
372
|
}
|
|
391
373
|
async getMitHeaders(request, mitSvcResponse) {
|
|
392
374
|
const cookieString = this.getHeaderValueOrDefault(request, 'cookie');
|
|
393
|
-
const mitataString = await this.readCookie(
|
|
394
|
-
const mitata =
|
|
375
|
+
const mitataString = await this.readCookie(this.netaceaCookieName, cookieString) ?? '';
|
|
376
|
+
const mitata = matchMitataCookie(mitataString);
|
|
395
377
|
const protoMitata = this.getProtoMitataFromRequestVar(request);
|
|
396
378
|
const { match, mitigate, captcha, userId } = protoMitata ?? mitata ?? {
|
|
397
379
|
match: 0,
|
|
@@ -415,8 +397,8 @@ class Akamai {
|
|
|
415
397
|
throw new Error('Cannot build cookie without secret key.');
|
|
416
398
|
}
|
|
417
399
|
const mitataCode = [match, mitigate, captcha].join('');
|
|
418
|
-
const mitataValue = await
|
|
419
|
-
return this.buildAkamaiCookieFromValues(
|
|
400
|
+
const mitataValue = await createMitataCookie(clientIP, userId, mitataExpiry, this.secretKey, mitataCode);
|
|
401
|
+
return this.buildAkamaiCookieFromValues(this.netaceaCookieName, mitataValue, maxAge, '/');
|
|
420
402
|
}
|
|
421
403
|
buildAkamaiCookieFromValues(cookieName, value, maxAge, path = '/') {
|
|
422
404
|
return `${cookieName}=${value}; Max-Age=${maxAge}; Path=${path}`;
|
|
@@ -424,7 +406,7 @@ class Akamai {
|
|
|
424
406
|
async createMitata(clientIP, userId, match, mitigate, captcha, maxAge = 86400, expiry = undefined) {
|
|
425
407
|
const AkamaiCookieObj = {
|
|
426
408
|
clientIP,
|
|
427
|
-
userId: userId ??
|
|
409
|
+
userId: userId ?? generateId(),
|
|
428
410
|
match,
|
|
429
411
|
mitigate,
|
|
430
412
|
captcha,
|
|
@@ -437,9 +419,9 @@ class Akamai {
|
|
|
437
419
|
request.setHeader('x-netacea-api-key', this.apiKey);
|
|
438
420
|
request.setHeader('x-netacea-client-ip', IP);
|
|
439
421
|
const cookies = this.getHeaderValueOrDefault(request, 'cookie');
|
|
440
|
-
const mitataCookie = await this.readCookie(
|
|
422
|
+
const mitataCookie = await this.readCookie(this.netaceaCookieName, cookies) ?? '';
|
|
441
423
|
let userId = '';
|
|
442
|
-
const cookieInfo = await
|
|
424
|
+
const cookieInfo = await checkMitataCookie(mitataCookie, IP, this.secretKey ?? '');
|
|
443
425
|
if (cookieInfo.isPrimaryHashValid) {
|
|
444
426
|
userId = cookieInfo.mitata?.userId ?? '';
|
|
445
427
|
}
|
|
@@ -448,7 +430,7 @@ class Akamai {
|
|
|
448
430
|
}
|
|
449
431
|
filterCookies(response) {
|
|
450
432
|
const resCookies = response.getHeader('set-cookie');
|
|
451
|
-
const mitataCaptchaCookie = resCookies?.filter(cookie => cookie.startsWith('_mitatacaptcha'));
|
|
433
|
+
const mitataCaptchaCookie = resCookies?.filter(cookie => cookie.startsWith('_mitatacaptcha=')).map(cookie => cookie.replace('_mitatacaptcha=', `${this.netaceaCaptchaCookieName}=`));
|
|
452
434
|
if (mitataCaptchaCookie !== undefined) {
|
|
453
435
|
response.setHeader('set-cookie', mitataCaptchaCookie);
|
|
454
436
|
}
|
|
@@ -465,11 +447,11 @@ class Akamai {
|
|
|
465
447
|
async runMitigation(args) {
|
|
466
448
|
try {
|
|
467
449
|
switch (this.mitigationType) {
|
|
468
|
-
case
|
|
450
|
+
case NetaceaMitigationType.MITIGATE:
|
|
469
451
|
return await this.mitigate(args);
|
|
470
|
-
case
|
|
452
|
+
case NetaceaMitigationType.INJECT:
|
|
471
453
|
return await this.inject(args);
|
|
472
|
-
case
|
|
454
|
+
case NetaceaMitigationType.INGEST:
|
|
473
455
|
return await this.processIngest(args);
|
|
474
456
|
default:
|
|
475
457
|
throw new Error(`Netacea Error: Mitigation type ${this.mitigationType} not recognised`);
|
|
@@ -514,7 +496,7 @@ class Akamai {
|
|
|
514
496
|
}
|
|
515
497
|
async callIngest(args) {
|
|
516
498
|
const body = this.constructWebLog(args);
|
|
517
|
-
if (this.ingestType ===
|
|
499
|
+
if (this.ingestType === NetaceaIngestType.KINESIS) {
|
|
518
500
|
}
|
|
519
501
|
else {
|
|
520
502
|
const headers = {
|
|
@@ -548,14 +530,14 @@ class Akamai {
|
|
|
548
530
|
actualQuery = `?${splitPath[1]}`;
|
|
549
531
|
}
|
|
550
532
|
const actualPath = splitPath[0];
|
|
551
|
-
const userId =
|
|
533
|
+
const userId = matchMitataCookie(mitataCookie)?.userId;
|
|
552
534
|
const log = {
|
|
553
535
|
status,
|
|
554
536
|
method,
|
|
555
|
-
'bytes_sent':
|
|
537
|
+
'bytes_sent': safeParseInt(bytesSent),
|
|
556
538
|
'referrer': referer === '' ? undefined : referer,
|
|
557
539
|
'request': `${method} ${actualPath}${actualQuery ?? ''} ${protocol}`,
|
|
558
|
-
'request_time':
|
|
540
|
+
'request_time': safeParseInt(requestTime),
|
|
559
541
|
'integration_type': integrationType,
|
|
560
542
|
'integration_version': integrationVersion,
|
|
561
543
|
'client': ip,
|
|
@@ -590,7 +572,7 @@ class Akamai {
|
|
|
590
572
|
}
|
|
591
573
|
constructWebLog(args) {
|
|
592
574
|
args.bytesSent = args.bytesSent === '' ? '0' : args.bytesSent;
|
|
593
|
-
if (this.logVersion ===
|
|
575
|
+
if (this.logVersion === NetaceaLogVersion.V2) {
|
|
594
576
|
return this.constructV2WebLog(args);
|
|
595
577
|
}
|
|
596
578
|
return this.constructV1WebLog(args);
|
|
@@ -600,7 +582,7 @@ class Akamai {
|
|
|
600
582
|
if (this.secretKey === undefined) {
|
|
601
583
|
throw new Error('Secret key is required to mitigate');
|
|
602
584
|
}
|
|
603
|
-
const cookieInfo = await
|
|
585
|
+
const cookieInfo = await checkMitataCookie(netaceaCookie, clientIP, this.secretKey);
|
|
604
586
|
if (!cookieInfo.isPrimaryHashValid || cookieInfo.requiresReissue) {
|
|
605
587
|
const result = await this.makeMitigateAPICall(cookieInfo.mitata?.userId, clientIP, userAgent, captchaCookie);
|
|
606
588
|
status = result.status;
|
|
@@ -628,9 +610,9 @@ class Akamai {
|
|
|
628
610
|
return this.composeResult(body, setCookie, status, match, mitigate, captcha, true);
|
|
629
611
|
}
|
|
630
612
|
async getMitataCaptchaFromHeaders(headers) {
|
|
631
|
-
if (Object.prototype.hasOwnProperty.call(headers,
|
|
632
|
-
const mitataCaptcha = headers[
|
|
633
|
-
const mitataCaptchaExpiry = parseInt(headers[
|
|
613
|
+
if (Object.prototype.hasOwnProperty.call(headers, dictionary.netaceaHeaders.mitataCaptcha)) {
|
|
614
|
+
const mitataCaptcha = headers[dictionary.netaceaHeaders.mitataCaptcha];
|
|
615
|
+
const mitataCaptchaExpiry = parseInt(headers[dictionary.netaceaHeaders.mitataCaptchaExpiry]);
|
|
634
616
|
const mitataCaptchaCookie = await this.buildCookieFromValues(this.netaceaCaptchaCookieName, mitataCaptcha, mitataCaptchaExpiry);
|
|
635
617
|
if (mitataCaptchaCookie !== undefined) {
|
|
636
618
|
return mitataCaptchaCookie;
|
|
@@ -645,7 +627,7 @@ class Akamai {
|
|
|
645
627
|
'user-agent': userAgent,
|
|
646
628
|
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
|
|
647
629
|
};
|
|
648
|
-
const mitata =
|
|
630
|
+
const mitata = matchMitataCookie(netaceaCookie);
|
|
649
631
|
if (mitata !== undefined) {
|
|
650
632
|
headers['X-Netacea-UserId'] = mitata.userId;
|
|
651
633
|
}
|
|
@@ -667,10 +649,10 @@ class Akamai {
|
|
|
667
649
|
if (response.status !== 200) {
|
|
668
650
|
throw this.APIError(response);
|
|
669
651
|
}
|
|
670
|
-
const match = parseInt(response.headers[
|
|
671
|
-
const mitigate = parseInt(response.headers[
|
|
672
|
-
const captcha = parseInt(response.headers[
|
|
673
|
-
let mitataMaxAge = parseInt(response.headers[
|
|
652
|
+
const match = parseInt(response.headers[dictionary.netaceaHeaders.match]);
|
|
653
|
+
const mitigate = parseInt(response.headers[dictionary.netaceaHeaders.mitigate]);
|
|
654
|
+
const captcha = parseInt(response.headers[dictionary.netaceaHeaders.captcha]);
|
|
655
|
+
let mitataMaxAge = parseInt(response.headers[dictionary.netaceaHeaders.mitataExpiry]);
|
|
674
656
|
if (isNaN(mitataMaxAge)) {
|
|
675
657
|
mitataMaxAge = 86400;
|
|
676
658
|
}
|
|
@@ -680,7 +662,7 @@ class Akamai {
|
|
|
680
662
|
mitata,
|
|
681
663
|
mitataCaptcha
|
|
682
664
|
].filter(c => c !== undefined);
|
|
683
|
-
const eventId = response.headers[
|
|
665
|
+
const eventId = response.headers[dictionary.netaceaHeaders.eventId];
|
|
684
666
|
return {
|
|
685
667
|
status: response.status,
|
|
686
668
|
match,
|
|
@@ -745,12 +727,12 @@ class Akamai {
|
|
|
745
727
|
sessionStatus: bestMitigation.sessionStatus,
|
|
746
728
|
mitigation: bestMitigation.mitigation,
|
|
747
729
|
mitigated: [
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
730
|
+
dictionary.mitigationTypes.block,
|
|
731
|
+
dictionary.mitigationTypes.captcha,
|
|
732
|
+
dictionary.mitigationTypes.captchaPass
|
|
751
733
|
].includes(bestMitigation.mitigation)
|
|
752
734
|
};
|
|
753
|
-
if (this.mitigationType ===
|
|
735
|
+
if (this.mitigationType === NetaceaMitigationType.INJECT) {
|
|
754
736
|
const injectHeaders = {
|
|
755
737
|
'x-netacea-match': bestMitigation.parts.match.toString(),
|
|
756
738
|
'x-netacea-mitigate': bestMitigation.parts.mitigate.toString(),
|
|
@@ -773,18 +755,18 @@ class Akamai {
|
|
|
773
755
|
captcha = 5;
|
|
774
756
|
}
|
|
775
757
|
}
|
|
776
|
-
let sessionStatus =
|
|
777
|
-
sessionStatus +=
|
|
778
|
-
let mitigation =
|
|
758
|
+
let sessionStatus = dictionary.matchMap[match] ?? (UNKNOWN + '_');
|
|
759
|
+
sessionStatus += dictionary.mitigateMap[mitigate] ?? UNKNOWN;
|
|
760
|
+
let mitigation = dictionary.bestMitigationMap[mitigate];
|
|
779
761
|
if (captcha !== 0) {
|
|
780
|
-
sessionStatus += ',' + (
|
|
781
|
-
const bestCaptchaMitigation =
|
|
762
|
+
sessionStatus += ',' + (dictionary.captchaMap[captcha] ?? UNKNOWN);
|
|
763
|
+
const bestCaptchaMitigation = dictionary.bestMitigationCaptchaMap[captcha];
|
|
782
764
|
if (bestCaptchaMitigation !== undefined) {
|
|
783
765
|
mitigation = bestCaptchaMitigation;
|
|
784
766
|
}
|
|
785
767
|
}
|
|
786
|
-
if (this.mitigationType ===
|
|
787
|
-
mitigation =
|
|
768
|
+
if (this.mitigationType === NetaceaMitigationType.INJECT) {
|
|
769
|
+
mitigation = dictionary.mitigationTypes.none;
|
|
788
770
|
}
|
|
789
771
|
return {
|
|
790
772
|
sessionStatus,
|
|
@@ -827,7 +809,7 @@ class Akamai {
|
|
|
827
809
|
: this.check(args.mitata, args.clientIp, args.userAgent, args.mitataCaptcha));
|
|
828
810
|
}
|
|
829
811
|
async setIngestOnlyMitataCookie(userId) {
|
|
830
|
-
const mitataCookie = await this.createMitata(
|
|
812
|
+
const mitataCookie = await this.createMitata(ingestIgnoredIpValue, userId, 0, 0, 0, ONE_DAY_IN_SECONDS);
|
|
831
813
|
return {
|
|
832
814
|
sessionStatus: '',
|
|
833
815
|
setCookie: [mitataCookie]
|
|
@@ -839,7 +821,7 @@ class Akamai {
|
|
|
839
821
|
}
|
|
840
822
|
const cookies = this.getCookieHeader(args);
|
|
841
823
|
const netaceaCookie = await this.readCookie(this.netaceaCookieName, cookies);
|
|
842
|
-
const cookieInfo = await
|
|
824
|
+
const cookieInfo = await checkMitataCookie(netaceaCookie, ingestIgnoredIpValue, this.secretKey);
|
|
843
825
|
if (!cookieInfo.isPrimaryHashValid) {
|
|
844
826
|
return await this.setIngestOnlyMitataCookie(undefined);
|
|
845
827
|
}
|
|
@@ -858,5 +840,4 @@ class Akamai {
|
|
|
858
840
|
return encryptedCookieValue;
|
|
859
841
|
}
|
|
860
842
|
}
|
|
861
|
-
exports.default = Akamai;
|
|
862
843
|
//# sourceMappingURL=Akamai.js.map
|
package/dist/src/Akamai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Akamai.js","sourceRoot":"","sources":["../../src/Akamai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Akamai.js","sourceRoot":"","sources":["../../src/Akamai.ts"],"names":[],"mappings":"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"}
|
package/dist/src/akamaiCrypto.js
CHANGED
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const cryptoModule = __importStar(require("crypto"));
|
|
27
|
-
exports.default = (cryptoModule.crypto ?? cryptoModule);
|
|
1
|
+
import * as cryptoModule from 'crypto';
|
|
2
|
+
export default (cryptoModule.crypto ?? cryptoModule);
|
|
28
3
|
//# sourceMappingURL=akamaiCrypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akamaiCrypto.js","sourceRoot":"","sources":["../../src/akamaiCrypto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"akamaiCrypto.js","sourceRoot":"","sources":["../../src/akamaiCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAA;AAItC,eAAe,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAW,CAAA"}
|
|
@@ -1,30 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.TextDecoder = exports.TextEncoder = void 0;
|
|
27
|
-
const encodingModule = __importStar(require("encoding"));
|
|
28
|
-
exports.TextEncoder = encodingModule.TextEncoder ?? global.TextEncoder;
|
|
29
|
-
exports.TextDecoder = encodingModule.TextDecoder ?? global.TextDecoder;
|
|
1
|
+
import * as encodingModule from 'encoding';
|
|
2
|
+
export const TextEncoder = encodingModule.TextEncoder ?? global.TextEncoder;
|
|
3
|
+
export const TextDecoder = encodingModule.TextDecoder ?? global.TextDecoder;
|
|
30
4
|
//# sourceMappingURL=akamaiEncoding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akamaiEncoding.js","sourceRoot":"","sources":["../../src/akamaiEncoding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"akamaiEncoding.js","sourceRoot":"","sources":["../../src/akamaiEncoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,UAAU,CAAA;AAG1C,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAA;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAA"}
|
package/dist/src/hash.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.isValidSha256Hmac = exports.sha256Hmac = void 0;
|
|
7
|
-
const akamaiEncoding_1 = require("./akamaiEncoding");
|
|
8
|
-
const akamaiCrypto_1 = __importDefault(require("./akamaiCrypto"));
|
|
9
|
-
const jssha_1 = __importDefault(require("jssha"));
|
|
10
|
-
async function sha256Hmac(value, saltKey) {
|
|
11
|
-
const shaObj = new jssha_1.default('SHA-256', 'UINT8ARRAY', {
|
|
1
|
+
import { TextEncoder } from './akamaiEncoding';
|
|
2
|
+
import crypto from './akamaiCrypto';
|
|
3
|
+
import JsSHA from 'jssha';
|
|
4
|
+
export async function sha256Hmac(value, saltKey) {
|
|
5
|
+
const shaObj = new JsSHA('SHA-256', 'UINT8ARRAY', {
|
|
12
6
|
hmacKey: {
|
|
13
7
|
value: saltKey,
|
|
14
8
|
format: 'TEXT'
|
|
@@ -17,16 +11,14 @@ async function sha256Hmac(value, saltKey) {
|
|
|
17
11
|
shaObj.update(value);
|
|
18
12
|
return shaObj.getHash('UINT8ARRAY');
|
|
19
13
|
}
|
|
20
|
-
exports.sha256Hmac = sha256Hmac;
|
|
21
14
|
async function getSubtleCryptoHmacKey(secret) {
|
|
22
|
-
return await
|
|
15
|
+
return await crypto.subtle.importKey('raw', new TextEncoder().encode(secret), {
|
|
23
16
|
name: 'HMAC',
|
|
24
17
|
hash: 'SHA-256'
|
|
25
18
|
}, false, ['sign', 'verify']);
|
|
26
19
|
}
|
|
27
|
-
async function isValidSha256Hmac(signature, data, secret) {
|
|
20
|
+
export async function isValidSha256Hmac(signature, data, secret) {
|
|
28
21
|
const key = await getSubtleCryptoHmacKey(secret);
|
|
29
|
-
return await
|
|
22
|
+
return await crypto.subtle.verify('HMAC', key, signature, data);
|
|
30
23
|
}
|
|
31
|
-
exports.isValidSha256Hmac = isValidSha256Hmac;
|
|
32
24
|
//# sourceMappingURL=hash.js.map
|
package/dist/src/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,MAAM,MAAM,gBAAgB,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,KAAiB,EAAE,OAAe;IAClE,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE;QAChD,OAAO,EAAE;YACP,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,MAAM;SACf;KACF,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAE,MAAc;IACnD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAClC,KAAK,EACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAChC;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;KAChB,EACD,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAqB,EACrB,IAAgB,EAChB,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAEhD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC/B,MAAM,EACN,GAAG,EACH,SAAS,EACT,IAAI,CACL,CAAA;AACH,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NetaceaMitigationType = void 0;
|
|
7
|
-
const Akamai_1 = __importDefault(require("./Akamai"));
|
|
8
|
-
var netaceaintegrationbase_1 = require("@netacea/netaceaintegrationbase");
|
|
9
|
-
Object.defineProperty(exports, "NetaceaMitigationType", { enumerable: true, get: function () { return netaceaintegrationbase_1.NetaceaMitigationType; } });
|
|
10
|
-
exports.default = Akamai_1.default;
|
|
1
|
+
import Akamai from './Akamai';
|
|
2
|
+
export { NetaceaMitigationType } from '@netacea/netaceaintegrationbase';
|
|
3
|
+
export default Akamai;
|
|
11
4
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAA;AAE7B,OAAO,EAAE,qBAAqB,EAAkB,MAAM,iCAAiC,CAAA;AACvF,eAAe,MAAM,CAAA"}
|
package/dist/src/mitataCookie.js
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const netaceaintegrationbase_1 = require("@netacea/netaceaintegrationbase");
|
|
8
|
-
const hash_1 = require("./hash");
|
|
9
|
-
const akamaiCrypto_1 = __importDefault(require("./akamaiCrypto"));
|
|
10
|
-
const buffer_1 = require("buffer/");
|
|
11
|
-
exports.ingestIgnoredIpValue = 'ignored';
|
|
12
|
-
exports.COOKIEDELIMITER = '_/@#/';
|
|
1
|
+
import { matchMitataCookie } from '@netacea/netaceaintegrationbase';
|
|
2
|
+
import { sha256Hmac, isValidSha256Hmac } from './hash';
|
|
3
|
+
import crypto from './akamaiCrypto';
|
|
4
|
+
import { Buffer } from 'buffer/';
|
|
5
|
+
export const ingestIgnoredIpValue = 'ignored';
|
|
6
|
+
export const COOKIEDELIMITER = '_/@#/';
|
|
13
7
|
const BASE_62_CHARSET = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
|
|
14
|
-
async function createMitataCookie(clientIP, userId, expiryTime, saltKey, mitCode = '000') {
|
|
8
|
+
export async function createMitataCookie(clientIP, userId, expiryTime, saltKey, mitCode = '000') {
|
|
15
9
|
if (userId === undefined) {
|
|
16
10
|
userId = generateId();
|
|
17
11
|
}
|
|
@@ -21,21 +15,19 @@ async function createMitataCookie(clientIP, userId, expiryTime, saltKey, mitCode
|
|
|
21
15
|
userId,
|
|
22
16
|
ipHash,
|
|
23
17
|
mitCode
|
|
24
|
-
].join(
|
|
18
|
+
].join(COOKIEDELIMITER);
|
|
25
19
|
const value = await createMitataHash(originCookieValue, saltKey);
|
|
26
|
-
const cookieValue = `${value}${
|
|
20
|
+
const cookieValue = `${value}${COOKIEDELIMITER}${originCookieValue}`;
|
|
27
21
|
return cookieValue;
|
|
28
22
|
}
|
|
29
|
-
|
|
30
|
-
function generateId(length = 16, charset = BASE_62_CHARSET) {
|
|
23
|
+
export function generateId(length = 16, charset = BASE_62_CHARSET) {
|
|
31
24
|
const randomBytesBuffer = new Uint16Array(length - 1);
|
|
32
|
-
|
|
25
|
+
crypto.getRandomValues(randomBytesBuffer);
|
|
33
26
|
const randomString = Array.from(randomBytesBuffer)
|
|
34
27
|
.map(byte => charset[byte % charset.length])
|
|
35
28
|
.join('');
|
|
36
29
|
return `c${randomString}`;
|
|
37
30
|
}
|
|
38
|
-
exports.generateId = generateId;
|
|
39
31
|
function defaultInvalidResponse() {
|
|
40
32
|
return {
|
|
41
33
|
mitata: undefined,
|
|
@@ -49,11 +41,11 @@ function defaultInvalidResponse() {
|
|
|
49
41
|
mitigate: 0
|
|
50
42
|
};
|
|
51
43
|
}
|
|
52
|
-
async function checkMitataCookie(netaceaCookie, clientIP, secretKey) {
|
|
44
|
+
export async function checkMitataCookie(netaceaCookie, clientIP, secretKey) {
|
|
53
45
|
if (typeof netaceaCookie !== 'string' || netaceaCookie === '') {
|
|
54
46
|
return defaultInvalidResponse();
|
|
55
47
|
}
|
|
56
|
-
const mitata =
|
|
48
|
+
const mitata = matchMitataCookie(netaceaCookie);
|
|
57
49
|
if (mitata !== undefined) {
|
|
58
50
|
const currentUnixTime = Math.floor(Date.now() / 1000);
|
|
59
51
|
const isExpired = parseInt(mitata.expiry) < currentUnixTime;
|
|
@@ -65,7 +57,7 @@ async function checkMitataCookie(netaceaCookie, clientIP, secretKey) {
|
|
|
65
57
|
mitata.userId,
|
|
66
58
|
mitata.ipHash,
|
|
67
59
|
mitata.mitigationType
|
|
68
|
-
].join(
|
|
60
|
+
].join(COOKIEDELIMITER);
|
|
69
61
|
const valid = await isValidMitataHash(mitata.signature, cookieHashData, secretKey);
|
|
70
62
|
return {
|
|
71
63
|
mitata,
|
|
@@ -81,16 +73,15 @@ async function checkMitataCookie(netaceaCookie, clientIP, secretKey) {
|
|
|
81
73
|
}
|
|
82
74
|
return defaultInvalidResponse();
|
|
83
75
|
}
|
|
84
|
-
exports.checkMitataCookie = checkMitataCookie;
|
|
85
76
|
async function createMitataHash(data, secret) {
|
|
86
|
-
const hash = await
|
|
87
|
-
const hexHash =
|
|
88
|
-
return
|
|
77
|
+
const hash = await sha256Hmac(Buffer.from(data), secret);
|
|
78
|
+
const hexHash = Buffer.from(hash).toString('hex');
|
|
79
|
+
return Buffer.from(hexHash).toString('base64');
|
|
89
80
|
}
|
|
90
81
|
async function isValidMitataHash(signature, data, secret) {
|
|
91
|
-
const b64Bytes =
|
|
82
|
+
const b64Bytes = Buffer.from(signature, 'base64');
|
|
92
83
|
const utf8String = b64Bytes.toString('utf-8');
|
|
93
|
-
const hexBytes =
|
|
94
|
-
return await
|
|
84
|
+
const hexBytes = Buffer.from(utf8String, 'hex');
|
|
85
|
+
return await isValidSha256Hmac(hexBytes, Buffer.from(data), secret);
|
|
95
86
|
}
|
|
96
87
|
//# sourceMappingURL=mitataCookie.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mitataCookie.js","sourceRoot":"","sources":["../../src/mitataCookie.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mitataCookie.js","sourceRoot":"","sources":["../../src/mitataCookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AACtD,OAAO,MAAM,MAAM,gBAAgB,CAAA;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAOhC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAW,OAAO,CAAA;AAC9C,MAAM,eAAe,GAAG,gEAAgE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAElG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,MAA0B,EAC1B,UAAkB,EAClB,OAAe,EACf,OAAO,GAAG,KAAK;IAEf,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,GAAG,UAAU,EAAE,CAAA;KACtB;IACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAA;IACnF,MAAM,iBAAiB,GAAG;QACxB,UAAU;QACV,MAAM;QACN,MAAM;QACN,OAAO;KACR,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACvB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAChE,MAAM,WAAW,GAAG,GAAG,KAAK,GAAG,eAAe,GAAG,iBAAiB,EAAE,CAAA;IACpE,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,UAAU,CAAE,SAAiB,EAAE,EAAE,UAAoB,eAAe;IAClF,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACrD,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAA;IAEzC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;IAEX,OAAO,IAAI,YAAY,EAAE,CAAA;AAC3B,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,KAAK;QACf,kBAAkB,EAAE,KAAK;QACzB,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;KACZ,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,aAAiC,EACjC,QAAgB,EAChB,SAAiB;IAEjB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,EAAE,EAAE;QAC7D,OAAO,sBAAsB,EAAE,CAAA;KAChC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAE/C,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;QAG3D,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEvD,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAA;QACjD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;QAE9E,MAAM,cAAc,GAAG;YACrB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,cAAc;SACtB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAEvB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;QAElF,OAAO;YACL,MAAM;YACN,eAAe,EAAE,SAAS,IAAI,CAAC,QAAQ;YACvC,SAAS;YACT,YAAY;YACZ,QAAQ;YACR,kBAAkB,EAAE,KAAK;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAA;KACF;IAED,OAAO,sBAAsB,EAAE,CAAA;AACjC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAE,IAAY,EAAE,MAAc;IAC3D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;IAMxD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAChD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAE,SAAiB,EAAE,IAAY,EAAE,MAAc;IAI/E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAE/C,OAAO,MAAM,iBAAiB,CAC5B,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,MAAM,CACP,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netacea/akamai",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.6",
|
|
4
4
|
"description": "Netacea Akamai CDN Integration",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "npm run test:unit && npm run test:integration",
|
|
9
|
-
"test:integration": "npx nyc -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
|
-
"test:unit": "npx nyc -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './unit_tests/*.test.ts'",
|
|
11
|
-
"test:regression": "npx nyc -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './regression_tests/*.test.ts'",
|
|
9
|
+
"test:integration": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
|
+
"test:unit": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './unit_tests/*.test.ts'",
|
|
11
|
+
"test:regression": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './regression_tests/*.test.ts'",
|
|
12
12
|
"lint": "npx eslint . --ext ts",
|
|
13
13
|
"lint:fix": "npx eslint . --ext ts --fix",
|
|
14
14
|
"prepublishOnly": "npx tsc --project tsconfig.build.json"
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"license": "ISC",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@netacea/netaceaintegrationbase": "^1.16.
|
|
23
|
-
"@netacea/netaceaintegrationtestrunner": "^1.7.
|
|
22
|
+
"@netacea/netaceaintegrationbase": "^1.16.6",
|
|
23
|
+
"@netacea/netaceaintegrationtestrunner": "^1.7.6",
|
|
24
24
|
"buffer": "^6.0.3",
|
|
25
25
|
"jssha": "^3.3.0"
|
|
26
26
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@rollup/plugin-commonjs": "^21.0.0",
|
|
29
29
|
"@rollup/plugin-node-resolve": "^13.0.5",
|
|
30
30
|
"@rollup/plugin-typescript": "^8.2.5",
|
|
31
|
-
"@types/akamai-edgeworkers": "^1.1.
|
|
31
|
+
"@types/akamai-edgeworkers": "^1.1.7",
|
|
32
32
|
"@types/aws4": "^1.11.0",
|
|
33
33
|
"@types/crypto-js": "^4.0.2",
|
|
34
34
|
"@types/node": "^18.15.3",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"tslib": "^2.0.3",
|
|
63
63
|
"typescript": "^4.0.3"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "9c8eaf54977241f73b2299dc6959c10a0c61467f"
|
|
66
66
|
}
|