@prosopo/provider 5.13.0 → 5.13.2
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/.turbo/turbo-build$colon$cjs.log +22 -21
- package/.turbo/turbo-build$colon$tsc.log +27 -27
- package/.turbo/turbo-build.log +22 -21
- package/CHANGELOG.md +113 -0
- package/dist/api/admin/apiDnsEventEndpoint.d.ts +2 -2
- package/dist/api/admin/apiDnsEventEndpoint.d.ts.map +1 -1
- package/dist/api/admin/apiDnsEventEndpoint.js +28 -5
- package/dist/api/admin/apiDnsEventEndpoint.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/api/captcha/getPoWCaptchaChallenge.d.ts.map +1 -1
- package/dist/api/captcha/getPoWCaptchaChallenge.js +2 -1
- package/dist/api/captcha/getPoWCaptchaChallenge.js.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js +2 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
- package/dist/api/captcha/submitImageCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitImageCaptchaSolution.js +3 -2
- package/dist/api/captcha/submitImageCaptchaSolution.js.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js +3 -2
- package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
- package/dist/api/captcha/submitPuzzleCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitPuzzleCaptchaSolution.js +3 -2
- package/dist/api/captcha/submitPuzzleCaptchaSolution.js.map +1 -1
- package/dist/api/hardBlockVerdictCache.d.ts +1 -0
- package/dist/api/hardBlockVerdictCache.d.ts.map +1 -1
- package/dist/api/hardBlockVerdictCache.js +4 -1
- package/dist/api/hardBlockVerdictCache.js.map +1 -1
- package/dist/api/requestBodySummary.d.ts +14 -0
- package/dist/api/requestBodySummary.d.ts.map +1 -0
- package/dist/api/requestBodySummary.js +47 -0
- package/dist/api/requestBodySummary.js.map +1 -0
- package/dist/api/verify.d.ts.map +1 -1
- package/dist/api/verify.js +9 -8
- package/dist/api/verify.js.map +1 -1
- package/dist/cjs/api/admin/apiDnsEventEndpoint.cjs +27 -4
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +1 -1
- package/dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs +2 -1
- package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +2 -1
- package/dist/cjs/api/captcha/submitImageCaptchaSolution.cjs +3 -2
- package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +3 -2
- package/dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs +3 -2
- package/dist/cjs/api/hardBlockVerdictCache.cjs +4 -1
- package/dist/cjs/api/requestBodySummary.cjs +47 -0
- package/dist/cjs/api/verify.cjs +9 -8
- package/dist/cjs/pairs.cjs +70 -6
- package/dist/cjs/tasks/captchaManager.cjs +16 -0
- package/dist/cjs/tasks/detection/bundlePool.cjs +4 -3
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +4 -1
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +21 -6
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +9 -1
- package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +5 -4
- package/dist/cjs/tasks/tasks.cjs +1 -37
- package/dist/pairs.d.ts +6 -1
- package/dist/pairs.d.ts.map +1 -1
- package/dist/pairs.js +67 -7
- package/dist/pairs.js.map +1 -1
- package/dist/tasks/captchaManager.d.ts.map +1 -1
- package/dist/tasks/captchaManager.js +16 -0
- package/dist/tasks/captchaManager.js.map +1 -1
- package/dist/tasks/detection/bundlePool.d.ts.map +1 -1
- package/dist/tasks/detection/bundlePool.js +4 -3
- package/dist/tasks/detection/bundlePool.js.map +1 -1
- package/dist/tasks/detection/bundlePool.test.js +30 -0
- package/dist/tasks/detection/bundlePool.test.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +4 -1
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +24 -8
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.js +9 -1
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js +5 -4
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
- package/dist/tasks/tasks.d.ts +0 -1
- package/dist/tasks/tasks.d.ts.map +1 -1
- package/dist/tasks/tasks.js +1 -37
- package/dist/tasks/tasks.js.map +1 -1
- package/dist/tests/integration/authenticatedVerifyClaim.integration.test.d.ts +2 -0
- package/dist/tests/integration/authenticatedVerifyClaim.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/authenticatedVerifyClaim.integration.test.js +81 -0
- package/dist/tests/integration/authenticatedVerifyClaim.integration.test.js.map +1 -0
- package/dist/tests/integration/imgCaptcha.integration.test.js +37 -1
- package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -1
- package/dist/tests/unit/api/admin/apiDnsEventEndpoint.unit.test.js +39 -3
- package/dist/tests/unit/api/admin/apiDnsEventEndpoint.unit.test.js.map +1 -1
- package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js +32 -0
- package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js.map +1 -1
- package/dist/tests/unit/api/requestBodySummary.unit.test.d.ts +2 -0
- package/dist/tests/unit/api/requestBodySummary.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/api/requestBodySummary.unit.test.js +172 -0
- package/dist/tests/unit/api/requestBodySummary.unit.test.js.map +1 -0
- package/dist/tests/unit/pairs.unit.test.js +126 -1
- package/dist/tests/unit/pairs.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/captchaManager.unit.test.js +38 -0
- package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +0 -8
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +236 -17
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +70 -14
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js +27 -1
- package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.js +34 -0
- package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js +0 -49
- package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js.map +1 -1
- package/dist/tests/unit/util/redisCache.unit.test.js +1 -104
- package/dist/tests/unit/util/redisCache.unit.test.js.map +1 -1
- package/package.json +23 -23
package/dist/api/verify.js
CHANGED
|
@@ -3,6 +3,7 @@ import { Tasks } from "../tasks/tasks.js";
|
|
|
3
3
|
import { getMaintenanceMode } from "./admin/apiToggleMaintenanceModeEndpoint.js";
|
|
4
4
|
import { isReservedTestSiteKey, resolveTestSiteKeyVerdict } from "./testSiteKey.js";
|
|
5
5
|
import { buildMaintenanceVerificationResponse } from "./captcha/maintenanceModeResponses.js";
|
|
6
|
+
import { summariseRequestBody } from "./requestBodySummary.js";
|
|
6
7
|
import { forwardVerifyIfNotIssuer } from "./forwardVerify.js";
|
|
7
8
|
import { ProsopoApiError } from "@prosopo/common";
|
|
8
9
|
import { ApiParams, CaptchaType, ClientApiPaths, ServerPowCaptchaVerifyRequestBody, ServerPuzzleCaptchaVerifyRequestBody, VerifySolutionBody, decodeProcaptchaOutput } from "@prosopo/types";
|
|
@@ -87,7 +88,7 @@ function prosopoVerifyRouter(env) {
|
|
|
87
88
|
context: {
|
|
88
89
|
code: 400,
|
|
89
90
|
error: err,
|
|
90
|
-
body: req
|
|
91
|
+
body: summariseRequestBody(req)
|
|
91
92
|
},
|
|
92
93
|
i18n: req.i18n,
|
|
93
94
|
logger: req.logger
|
|
@@ -138,7 +139,7 @@ function prosopoVerifyRouter(env) {
|
|
|
138
139
|
req.logger.error(() => ({
|
|
139
140
|
err,
|
|
140
141
|
msg: "Error in verifyImageCaptchaSolution",
|
|
141
|
-
data: { body: req
|
|
142
|
+
data: { body: summariseRequestBody(req) }
|
|
142
143
|
}));
|
|
143
144
|
return next(new ProsopoApiError("API.BAD_REQUEST", {
|
|
144
145
|
context: {
|
|
@@ -172,7 +173,7 @@ function prosopoVerifyRouter(env) {
|
|
|
172
173
|
context: {
|
|
173
174
|
code: 400,
|
|
174
175
|
error: err,
|
|
175
|
-
body: req
|
|
176
|
+
body: summariseRequestBody(req)
|
|
176
177
|
},
|
|
177
178
|
i18n: req.i18n,
|
|
178
179
|
logger: req.logger
|
|
@@ -228,7 +229,7 @@ function prosopoVerifyRouter(env) {
|
|
|
228
229
|
req.logger.error(() => ({
|
|
229
230
|
msg: "Error in verifyPowCaptchaSolution",
|
|
230
231
|
err,
|
|
231
|
-
data: { body: req
|
|
232
|
+
data: { body: summariseRequestBody(req) }
|
|
232
233
|
}));
|
|
233
234
|
return next(new ProsopoApiError("API.BAD_REQUEST", {
|
|
234
235
|
context: {
|
|
@@ -261,7 +262,7 @@ function prosopoVerifyRouter(env) {
|
|
|
261
262
|
context: {
|
|
262
263
|
code: 400,
|
|
263
264
|
error: err,
|
|
264
|
-
body: req
|
|
265
|
+
body: summariseRequestBody(req)
|
|
265
266
|
},
|
|
266
267
|
i18n: req.i18n,
|
|
267
268
|
logger: req.logger
|
|
@@ -317,7 +318,7 @@ function prosopoVerifyRouter(env) {
|
|
|
317
318
|
req.logger.error(() => ({
|
|
318
319
|
msg: "Error in verifyPuzzleCaptchaSolution",
|
|
319
320
|
err,
|
|
320
|
-
data: { body: req
|
|
321
|
+
data: { body: summariseRequestBody(req) }
|
|
321
322
|
}));
|
|
322
323
|
return next(new ProsopoApiError("API.BAD_REQUEST", {
|
|
323
324
|
context: {
|
|
@@ -350,7 +351,7 @@ function prosopoVerifyRouter(env) {
|
|
|
350
351
|
context: {
|
|
351
352
|
code: 400,
|
|
352
353
|
error: err,
|
|
353
|
-
body: req
|
|
354
|
+
body: summariseRequestBody(req)
|
|
354
355
|
},
|
|
355
356
|
i18n: req.i18n,
|
|
356
357
|
logger: req.logger
|
|
@@ -399,7 +400,7 @@ function prosopoVerifyRouter(env) {
|
|
|
399
400
|
req.logger.error(() => ({
|
|
400
401
|
err,
|
|
401
402
|
msg: "Error in verifyAuthenticatedSession",
|
|
402
|
-
data: { body: req
|
|
403
|
+
data: { body: summariseRequestBody(req) }
|
|
403
404
|
}));
|
|
404
405
|
return next(new ProsopoApiError("API.BAD_REQUEST", {
|
|
405
406
|
context: {
|
package/dist/api/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/api/verify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/api/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ let _prosopo_logger = require("@prosopo/logger");
|
|
|
3
3
|
let _prosopo_types = require("@prosopo/types");
|
|
4
4
|
let _prosopo_api_route = require("@prosopo/api-route");
|
|
5
5
|
//#region src/api/admin/apiDnsEventEndpoint.ts
|
|
6
|
+
var MAX_LOGGED_INVALID = 5;
|
|
6
7
|
var dnsEventToFields = (event) => {
|
|
7
8
|
if (event.kind === "dns") return { resolverIp: event.src_ip };
|
|
8
9
|
const out = { peerIp: event.src_ip };
|
|
@@ -19,8 +20,20 @@ var ApiDnsEventEndpoint = class {
|
|
|
19
20
|
const { events } = args;
|
|
20
21
|
let stored = 0;
|
|
21
22
|
let errors = 0;
|
|
23
|
+
let dropped = 0;
|
|
24
|
+
const invalid = [];
|
|
22
25
|
const now = /* @__PURE__ */ new Date();
|
|
23
|
-
for (const
|
|
26
|
+
for (const [index, raw] of events.entries()) {
|
|
27
|
+
const parsed = _prosopo_types.DnsEventSchema.safeParse(raw);
|
|
28
|
+
if (!parsed.success) {
|
|
29
|
+
dropped += 1;
|
|
30
|
+
if (invalid.length < MAX_LOGGED_INVALID) invalid.push({
|
|
31
|
+
index,
|
|
32
|
+
issues: parsed.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`)
|
|
33
|
+
});
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const event = parsed.data;
|
|
24
37
|
const sessionId = event.jti;
|
|
25
38
|
if (!sessionId) continue;
|
|
26
39
|
try {
|
|
@@ -41,11 +54,20 @@ var ApiDnsEventEndpoint = class {
|
|
|
41
54
|
}));
|
|
42
55
|
}
|
|
43
56
|
}
|
|
57
|
+
if (dropped > 0) logger.warn(() => ({
|
|
58
|
+
data: {
|
|
59
|
+
received: events.length,
|
|
60
|
+
dropped,
|
|
61
|
+
invalid
|
|
62
|
+
},
|
|
63
|
+
msg: "Dropped invalid DNS events from batch"
|
|
64
|
+
}));
|
|
44
65
|
logger.info(() => ({
|
|
45
66
|
data: {
|
|
46
67
|
received: events.length,
|
|
47
68
|
stored,
|
|
48
|
-
errors
|
|
69
|
+
errors,
|
|
70
|
+
dropped
|
|
49
71
|
},
|
|
50
72
|
msg: "Processed DNS event batch"
|
|
51
73
|
}));
|
|
@@ -53,12 +75,13 @@ var ApiDnsEventEndpoint = class {
|
|
|
53
75
|
status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
|
|
54
76
|
data: {
|
|
55
77
|
stored,
|
|
56
|
-
errors
|
|
78
|
+
errors,
|
|
79
|
+
dropped
|
|
57
80
|
}
|
|
58
81
|
};
|
|
59
82
|
}
|
|
60
83
|
getRequestArgsSchema() {
|
|
61
|
-
return _prosopo_types.
|
|
84
|
+
return _prosopo_types.DnsEventIngestBatchSchema;
|
|
62
85
|
}
|
|
63
86
|
async recomputeDnsAsymmetry(sessionId, logger) {
|
|
64
87
|
if (!this.ipInfoService) return;
|
|
@@ -237,7 +237,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
|
|
|
237
237
|
method: req.method,
|
|
238
238
|
url: `https://${req.headers.host ?? ""}${req.originalUrl ?? req.url}`,
|
|
239
239
|
headers: (0, _prosopo_util.flatten)(req.headers)
|
|
240
|
-
});
|
|
240
|
+
}, { allowLocalSigners: process.env.NODE_ENV === "test" || process.env.NODE_ENV === "development" });
|
|
241
241
|
const verifiedSignerUrl = verified.verified ? verified.signerUrl : void 0;
|
|
242
242
|
const userScope = require_blacklistRequestInspector.getRequestUserScope((0, _prosopo_util.flatten)(req.headers), req.ja4, normalizedIp, user, void 0, void 0, countryCode, asn, verifiedSignerUrl);
|
|
243
243
|
const [decryptedPayload, validation, accessPolicies] = await Promise.all([
|
|
@@ -8,6 +8,7 @@ const require_testSiteKey = require("../testSiteKey.cjs");
|
|
|
8
8
|
const require_normalizeRequestIp = require("../../utils/normalizeRequestIp.cjs");
|
|
9
9
|
const require_maintenanceModeResponses = require("./maintenanceModeResponses.cjs");
|
|
10
10
|
const require_trafficFilterRequestTime = require("./trafficFilterRequestTime.cjs");
|
|
11
|
+
const require_requestBodySummary = require("../requestBodySummary.cjs");
|
|
11
12
|
let _prosopo_common = require("@prosopo/common");
|
|
12
13
|
let _prosopo_types = require("@prosopo/types");
|
|
13
14
|
let _prosopo_util = require("@prosopo/util");
|
|
@@ -130,7 +131,7 @@ var getPoWCaptchaChallenge_default = (env, userAccessRulesStorage) => async (req
|
|
|
130
131
|
require_metrics.recordCaptchaIssueError(_prosopo_types.CaptchaType.pow);
|
|
131
132
|
req.logger.error(() => ({
|
|
132
133
|
err,
|
|
133
|
-
body: req
|
|
134
|
+
body: require_requestBodySummary.summariseRequestBody(req),
|
|
134
135
|
msg: "Error in PoW captcha challenge request"
|
|
135
136
|
}));
|
|
136
137
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
@@ -9,6 +9,7 @@ const require_testSiteKey = require("../testSiteKey.cjs");
|
|
|
9
9
|
const require_normalizeRequestIp = require("../../utils/normalizeRequestIp.cjs");
|
|
10
10
|
const require_maintenanceModeResponses = require("./maintenanceModeResponses.cjs");
|
|
11
11
|
const require_trafficFilterRequestTime = require("./trafficFilterRequestTime.cjs");
|
|
12
|
+
const require_requestBodySummary = require("../requestBodySummary.cjs");
|
|
12
13
|
let _prosopo_common = require("@prosopo/common");
|
|
13
14
|
let _prosopo_types = require("@prosopo/types");
|
|
14
15
|
let _prosopo_util = require("@prosopo/util");
|
|
@@ -140,7 +141,7 @@ var getPuzzleCaptchaChallenge_default = (env, userAccessRulesStorage) => async (
|
|
|
140
141
|
require_metrics.recordCaptchaIssueError(_prosopo_types.CaptchaType.puzzle);
|
|
141
142
|
req.logger.error(() => ({
|
|
142
143
|
err,
|
|
143
|
-
body: req
|
|
144
|
+
body: require_requestBodySummary.summariseRequestBody(req),
|
|
144
145
|
msg: "Error in puzzle captcha challenge request"
|
|
145
146
|
}));
|
|
146
147
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
@@ -2,6 +2,7 @@ const require_validateAddress = require("../validateAddress.cjs");
|
|
|
2
2
|
const require_tasks = require("../../tasks/tasks.cjs");
|
|
3
3
|
const require_apiToggleMaintenanceModeEndpoint = require("../admin/apiToggleMaintenanceModeEndpoint.cjs");
|
|
4
4
|
const require_testSiteKey = require("../testSiteKey.cjs");
|
|
5
|
+
const require_requestBodySummary = require("../requestBodySummary.cjs");
|
|
5
6
|
let _prosopo_common = require("@prosopo/common");
|
|
6
7
|
let _prosopo_types = require("@prosopo/types");
|
|
7
8
|
let _prosopo_util = require("@prosopo/util");
|
|
@@ -24,7 +25,7 @@ var submitImageCaptchaSolution_default = (env) => async (req, res, next) => {
|
|
|
24
25
|
context: {
|
|
25
26
|
code: 400,
|
|
26
27
|
error: err,
|
|
27
|
-
body: req
|
|
28
|
+
body: require_requestBodySummary.summariseRequestBody(req)
|
|
28
29
|
},
|
|
29
30
|
i18n: req.i18n,
|
|
30
31
|
logger: req.logger
|
|
@@ -60,7 +61,7 @@ var submitImageCaptchaSolution_default = (env) => async (req, res, next) => {
|
|
|
60
61
|
} catch (err) {
|
|
61
62
|
req.logger.error(() => ({
|
|
62
63
|
err,
|
|
63
|
-
body: req
|
|
64
|
+
body: require_requestBodySummary.summariseRequestBody(req),
|
|
64
65
|
msg: "Error in image captcha solution submission"
|
|
65
66
|
}));
|
|
66
67
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
@@ -6,6 +6,7 @@ const require_tasks = require("../../tasks/tasks.cjs");
|
|
|
6
6
|
const require_apiToggleMaintenanceModeEndpoint = require("../admin/apiToggleMaintenanceModeEndpoint.cjs");
|
|
7
7
|
const require_testSiteKey = require("../testSiteKey.cjs");
|
|
8
8
|
const require_rawTlsSignalsMiddleware = require("../rawTlsSignalsMiddleware.cjs");
|
|
9
|
+
const require_requestBodySummary = require("../requestBodySummary.cjs");
|
|
9
10
|
let _prosopo_common = require("@prosopo/common");
|
|
10
11
|
let _prosopo_types = require("@prosopo/types");
|
|
11
12
|
let _prosopo_util = require("@prosopo/util");
|
|
@@ -29,7 +30,7 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
|
|
|
29
30
|
context: {
|
|
30
31
|
code: 400,
|
|
31
32
|
error: err,
|
|
32
|
-
body: req
|
|
33
|
+
body: require_requestBodySummary.summariseRequestBody(req)
|
|
33
34
|
},
|
|
34
35
|
i18n: req.i18n,
|
|
35
36
|
logger: req.logger
|
|
@@ -111,7 +112,7 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
|
|
|
111
112
|
} catch (err) {
|
|
112
113
|
req.logger.error(() => ({
|
|
113
114
|
err,
|
|
114
|
-
body: req
|
|
115
|
+
body: require_requestBodySummary.summariseRequestBody(req),
|
|
115
116
|
msg: "Error in PoW captcha solution submission"
|
|
116
117
|
}));
|
|
117
118
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
@@ -2,6 +2,7 @@ const require_validateAddress = require("../validateAddress.cjs");
|
|
|
2
2
|
const require_tasks = require("../../tasks/tasks.cjs");
|
|
3
3
|
const require_apiToggleMaintenanceModeEndpoint = require("../admin/apiToggleMaintenanceModeEndpoint.cjs");
|
|
4
4
|
const require_testSiteKey = require("../testSiteKey.cjs");
|
|
5
|
+
const require_requestBodySummary = require("../requestBodySummary.cjs");
|
|
5
6
|
let _prosopo_common = require("@prosopo/common");
|
|
6
7
|
let _prosopo_types = require("@prosopo/types");
|
|
7
8
|
let _prosopo_util = require("@prosopo/util");
|
|
@@ -23,7 +24,7 @@ var submitPuzzleCaptchaSolution_default = (env) => async (req, res, next) => {
|
|
|
23
24
|
context: {
|
|
24
25
|
code: 400,
|
|
25
26
|
error: err,
|
|
26
|
-
body: req
|
|
27
|
+
body: require_requestBodySummary.summariseRequestBody(req)
|
|
27
28
|
},
|
|
28
29
|
i18n: req.i18n,
|
|
29
30
|
logger: req.logger
|
|
@@ -59,7 +60,7 @@ var submitPuzzleCaptchaSolution_default = (env) => async (req, res, next) => {
|
|
|
59
60
|
} catch (err) {
|
|
60
61
|
req.logger.error(() => ({
|
|
61
62
|
err,
|
|
62
|
-
body: req
|
|
63
|
+
body: require_requestBodySummary.summariseRequestBody(req),
|
|
63
64
|
msg: "Error in puzzle captcha solution submission"
|
|
64
65
|
}));
|
|
65
66
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
@@ -25,6 +25,7 @@ var HardBlockVerdictCache = class {
|
|
|
25
25
|
this.maxEntries = maxEntries;
|
|
26
26
|
this.store = /* @__PURE__ */ new Map();
|
|
27
27
|
this.inflight = /* @__PURE__ */ new Map();
|
|
28
|
+
this.generation = 0;
|
|
28
29
|
}
|
|
29
30
|
get(key) {
|
|
30
31
|
const entry = this.store.get(key);
|
|
@@ -73,9 +74,10 @@ var HardBlockVerdictCache = class {
|
|
|
73
74
|
if (cached !== void 0) return cached;
|
|
74
75
|
const existing = this.inflight.get(key);
|
|
75
76
|
if (existing !== void 0) return existing;
|
|
77
|
+
const generation = this.generation;
|
|
76
78
|
const promise = (async () => {
|
|
77
79
|
const value = await compute();
|
|
78
|
-
this.set(key, value);
|
|
80
|
+
if (generation === this.generation) this.set(key, value);
|
|
79
81
|
return value;
|
|
80
82
|
})();
|
|
81
83
|
this.inflight.set(key, promise);
|
|
@@ -86,6 +88,7 @@ var HardBlockVerdictCache = class {
|
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
clear() {
|
|
91
|
+
this.generation++;
|
|
89
92
|
this.store.clear();
|
|
90
93
|
this.inflight.clear();
|
|
91
94
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/api/requestBodySummary.ts
|
|
2
|
+
var SENSITIVE_KEY = /signature|token|secret|proof|procaptcha|salt|mnemonic|password|email|behavioral|detectorKey|^ip$/i;
|
|
3
|
+
var REDACTED = "[redacted]";
|
|
4
|
+
var MAX_DEPTH = 3;
|
|
5
|
+
var MAX_KEYS = 20;
|
|
6
|
+
var MAX_ARRAY_ITEMS = 5;
|
|
7
|
+
var MAX_STRING_CHARS = 64;
|
|
8
|
+
var truncateString = (value) => value.length > MAX_STRING_CHARS ? `${value.slice(0, MAX_STRING_CHARS)}...(+${value.length - MAX_STRING_CHARS} chars)` : value;
|
|
9
|
+
var redact = (value, depth) => {
|
|
10
|
+
if (typeof value === "string") return truncateString(value);
|
|
11
|
+
if (value === null || typeof value !== "object") return value;
|
|
12
|
+
if (depth >= MAX_DEPTH) return Array.isArray(value) ? `[array(${value.length})]` : "[object]";
|
|
13
|
+
if (Array.isArray(value)) {
|
|
14
|
+
const items = value.slice(0, MAX_ARRAY_ITEMS).map((item) => redact(item, depth + 1));
|
|
15
|
+
return value.length > MAX_ARRAY_ITEMS ? [...items, `...(+${value.length - MAX_ARRAY_ITEMS} items)`] : items;
|
|
16
|
+
}
|
|
17
|
+
const entries = Object.entries(value);
|
|
18
|
+
const out = {};
|
|
19
|
+
for (const [key, child] of entries.slice(0, MAX_KEYS)) out[key] = SENSITIVE_KEY.test(key) ? REDACTED : redact(child, depth + 1);
|
|
20
|
+
if (entries.length > MAX_KEYS) out["..."] = `+${entries.length - MAX_KEYS} keys`;
|
|
21
|
+
return out;
|
|
22
|
+
};
|
|
23
|
+
var contentLength = (headers) => {
|
|
24
|
+
const bytes = Number(headers["content-length"]);
|
|
25
|
+
return Number.isFinite(bytes) ? bytes : void 0;
|
|
26
|
+
};
|
|
27
|
+
var summariseRequestBody = (req) => {
|
|
28
|
+
const { body } = req;
|
|
29
|
+
const type = body === null ? "null" : Array.isArray(body) ? "array" : typeof body;
|
|
30
|
+
const bytes = contentLength(req.headers);
|
|
31
|
+
const preview = (JSON.stringify(redact(body, 0)) ?? "").slice(0, 512);
|
|
32
|
+
if (type !== "object" || body === null || body === void 0) return {
|
|
33
|
+
type,
|
|
34
|
+
...bytes !== void 0 && { bytes },
|
|
35
|
+
preview
|
|
36
|
+
};
|
|
37
|
+
const keys = Object.keys(body);
|
|
38
|
+
return {
|
|
39
|
+
type,
|
|
40
|
+
...bytes !== void 0 && { bytes },
|
|
41
|
+
keys: keys.slice(0, MAX_KEYS),
|
|
42
|
+
keyCount: keys.length,
|
|
43
|
+
preview
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
exports.summariseRequestBody = summariseRequestBody;
|
package/dist/cjs/api/verify.cjs
CHANGED
|
@@ -4,6 +4,7 @@ const require_tasks = require("../tasks/tasks.cjs");
|
|
|
4
4
|
const require_apiToggleMaintenanceModeEndpoint = require("./admin/apiToggleMaintenanceModeEndpoint.cjs");
|
|
5
5
|
const require_testSiteKey = require("./testSiteKey.cjs");
|
|
6
6
|
const require_maintenanceModeResponses = require("./captcha/maintenanceModeResponses.cjs");
|
|
7
|
+
const require_requestBodySummary = require("./requestBodySummary.cjs");
|
|
7
8
|
const require_forwardVerify = require("./forwardVerify.cjs");
|
|
8
9
|
let _prosopo_common = require("@prosopo/common");
|
|
9
10
|
let _prosopo_types = require("@prosopo/types");
|
|
@@ -89,7 +90,7 @@ function prosopoVerifyRouter(env) {
|
|
|
89
90
|
context: {
|
|
90
91
|
code: 400,
|
|
91
92
|
error: err,
|
|
92
|
-
body: req
|
|
93
|
+
body: require_requestBodySummary.summariseRequestBody(req)
|
|
93
94
|
},
|
|
94
95
|
i18n: req.i18n,
|
|
95
96
|
logger: req.logger
|
|
@@ -140,7 +141,7 @@ function prosopoVerifyRouter(env) {
|
|
|
140
141
|
req.logger.error(() => ({
|
|
141
142
|
err,
|
|
142
143
|
msg: "Error in verifyImageCaptchaSolution",
|
|
143
|
-
data: { body: req
|
|
144
|
+
data: { body: require_requestBodySummary.summariseRequestBody(req) }
|
|
144
145
|
}));
|
|
145
146
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
146
147
|
context: {
|
|
@@ -174,7 +175,7 @@ function prosopoVerifyRouter(env) {
|
|
|
174
175
|
context: {
|
|
175
176
|
code: 400,
|
|
176
177
|
error: err,
|
|
177
|
-
body: req
|
|
178
|
+
body: require_requestBodySummary.summariseRequestBody(req)
|
|
178
179
|
},
|
|
179
180
|
i18n: req.i18n,
|
|
180
181
|
logger: req.logger
|
|
@@ -230,7 +231,7 @@ function prosopoVerifyRouter(env) {
|
|
|
230
231
|
req.logger.error(() => ({
|
|
231
232
|
msg: "Error in verifyPowCaptchaSolution",
|
|
232
233
|
err,
|
|
233
|
-
data: { body: req
|
|
234
|
+
data: { body: require_requestBodySummary.summariseRequestBody(req) }
|
|
234
235
|
}));
|
|
235
236
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
236
237
|
context: {
|
|
@@ -263,7 +264,7 @@ function prosopoVerifyRouter(env) {
|
|
|
263
264
|
context: {
|
|
264
265
|
code: 400,
|
|
265
266
|
error: err,
|
|
266
|
-
body: req
|
|
267
|
+
body: require_requestBodySummary.summariseRequestBody(req)
|
|
267
268
|
},
|
|
268
269
|
i18n: req.i18n,
|
|
269
270
|
logger: req.logger
|
|
@@ -319,7 +320,7 @@ function prosopoVerifyRouter(env) {
|
|
|
319
320
|
req.logger.error(() => ({
|
|
320
321
|
msg: "Error in verifyPuzzleCaptchaSolution",
|
|
321
322
|
err,
|
|
322
|
-
data: { body: req
|
|
323
|
+
data: { body: require_requestBodySummary.summariseRequestBody(req) }
|
|
323
324
|
}));
|
|
324
325
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
325
326
|
context: {
|
|
@@ -352,7 +353,7 @@ function prosopoVerifyRouter(env) {
|
|
|
352
353
|
context: {
|
|
353
354
|
code: 400,
|
|
354
355
|
error: err,
|
|
355
|
-
body: req
|
|
356
|
+
body: require_requestBodySummary.summariseRequestBody(req)
|
|
356
357
|
},
|
|
357
358
|
i18n: req.i18n,
|
|
358
359
|
logger: req.logger
|
|
@@ -401,7 +402,7 @@ function prosopoVerifyRouter(env) {
|
|
|
401
402
|
req.logger.error(() => ({
|
|
402
403
|
err,
|
|
403
404
|
msg: "Error in verifyAuthenticatedSession",
|
|
404
|
-
data: { body: req
|
|
405
|
+
data: { body: require_requestBodySummary.summariseRequestBody(req) }
|
|
405
406
|
}));
|
|
406
407
|
return next(new _prosopo_common.ProsopoApiError("API.BAD_REQUEST", {
|
|
407
408
|
context: {
|
package/dist/cjs/pairs.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
let _prosopo_types = require("@prosopo/types");
|
|
1
2
|
let _prosopo_util = require("@prosopo/util");
|
|
2
3
|
//#region src/pairs.ts
|
|
3
4
|
/** Construct list of pairs from flat list
|
|
@@ -20,18 +21,81 @@ var peelCheckboxPrefix = (flat, solutionLengths) => {
|
|
|
20
21
|
return { flat };
|
|
21
22
|
};
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
+
* The input method of every coordinate pair embedded in each captcha's salt.
|
|
25
|
+
* A captcha that declares none gets pointer for every pair, which keeps
|
|
26
|
+
* requests from older widgets under the full repeated-position check.
|
|
27
|
+
* Returns `undefined` when a captcha declares a different number of methods
|
|
28
|
+
* than it has pairs: the official widget never sends that.
|
|
29
|
+
* @param flat the coordinates extracted from each captcha's salt
|
|
30
|
+
* @param declared the input methods each captcha declared, if any
|
|
31
|
+
*/
|
|
32
|
+
var resolveInputMethods = (flat, declared) => {
|
|
33
|
+
const resolved = [];
|
|
34
|
+
for (const [index, list] of flat.entries()) {
|
|
35
|
+
const pairCount = list.length / 2;
|
|
36
|
+
const methods = declared[index];
|
|
37
|
+
if (methods === void 0) resolved.push(new Array(pairCount).fill(_prosopo_types.InputMethod.pointer));
|
|
38
|
+
else if (methods.length === pairCount) resolved.push([...methods]);
|
|
39
|
+
else return;
|
|
40
|
+
}
|
|
41
|
+
return resolved;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Give the checkbox's input method its own list, as `peelCheckboxPrefix` does
|
|
45
|
+
* for its coordinates, so the result lines up with the pair lists.
|
|
46
|
+
* @param methods the input methods of each captcha, checkbox first
|
|
47
|
+
*/
|
|
48
|
+
var peelCheckboxInputMethod = (methods) => {
|
|
49
|
+
const [first, ...rest] = methods;
|
|
50
|
+
if (first === void 0 || first.length === 0) return methods;
|
|
51
|
+
return [
|
|
52
|
+
first.slice(0, 1),
|
|
53
|
+
first.slice(1),
|
|
54
|
+
...rest
|
|
55
|
+
];
|
|
56
|
+
};
|
|
57
|
+
var isKeyboard = (inputMethods, listIndex, pairIndex) => inputMethods?.[listIndex]?.[pairIndex] === _prosopo_types.InputMethod.keyboard;
|
|
58
|
+
/**
|
|
59
|
+
* Whether any keyboard selection carries a pointer position. Keyboard
|
|
60
|
+
* activation has none, and the widget sends (0, 0) for it, so a position here
|
|
61
|
+
* means the request did not come from the widget.
|
|
24
62
|
* @param pairsLists
|
|
63
|
+
* @param inputMethods the same shape as `pairsLists`
|
|
25
64
|
*/
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
65
|
+
var keyboardSelectionHasPosition = (pairsLists, inputMethods) => pairsLists.some((pairList, listIndex) => pairList.some(([x, y], pairIndex) => isKeyboard(inputMethods, listIndex, pairIndex) && (x !== 0 || y !== 0)));
|
|
66
|
+
/**
|
|
67
|
+
* Check whether any pointer position repeats across the lists of pairs. A
|
|
68
|
+
* person selecting the same tile in two rounds almost never lands on the same
|
|
69
|
+
* pixel twice, whereas a script clicking each element's centre does. Keyboard
|
|
70
|
+
* selections have no position and are left out; without `inputMethods` every
|
|
71
|
+
* pair is a pointer selection.
|
|
72
|
+
* @param pairsLists
|
|
73
|
+
* @param inputMethods the same shape as `pairsLists`
|
|
74
|
+
*/
|
|
75
|
+
var containsIdenticalPairs = (pairsLists, inputMethods) => {
|
|
76
|
+
const seen = /* @__PURE__ */ new Set();
|
|
77
|
+
for (const [listIndex, pairList] of pairsLists.entries()) for (const [pairIndex, pair] of pairList.entries()) {
|
|
78
|
+
if (isKeyboard(inputMethods, listIndex, pairIndex)) continue;
|
|
29
79
|
const coordString = `${(0, _prosopo_util.at)(pair, 0)},${(0, _prosopo_util.at)(pair, 1)}`;
|
|
30
|
-
|
|
80
|
+
if (seen.has(coordString)) return true;
|
|
81
|
+
seen.add(coordString);
|
|
31
82
|
}
|
|
32
|
-
return
|
|
83
|
+
return false;
|
|
33
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* Whether the selections point to a script rather than a person: the declared
|
|
87
|
+
* input methods do not line up with the coordinates, a keyboard selection
|
|
88
|
+
* carries a position, or a pointer position repeats.
|
|
89
|
+
* @param pairsLists
|
|
90
|
+
* @param inputMethods the same shape as `pairsLists`, or `undefined` when the
|
|
91
|
+
* declared methods did not line up with the coordinates
|
|
92
|
+
*/
|
|
93
|
+
var selectionsLookScripted = (pairsLists, inputMethods) => inputMethods === void 0 || keyboardSelectionHasPosition(pairsLists, inputMethods) || containsIdenticalPairs(pairsLists, inputMethods);
|
|
34
94
|
//#endregion
|
|
35
95
|
exports.constructPairList = constructPairList;
|
|
36
96
|
exports.containsIdenticalPairs = containsIdenticalPairs;
|
|
97
|
+
exports.keyboardSelectionHasPosition = keyboardSelectionHasPosition;
|
|
98
|
+
exports.peelCheckboxInputMethod = peelCheckboxInputMethod;
|
|
37
99
|
exports.peelCheckboxPrefix = peelCheckboxPrefix;
|
|
100
|
+
exports.resolveInputMethods = resolveInputMethods;
|
|
101
|
+
exports.selectionsLookScripted = selectionsLookScripted;
|
|
@@ -294,6 +294,21 @@ var CaptchaManager = class CaptchaManager {
|
|
|
294
294
|
}
|
|
295
295
|
sessionId = resolvedSessionId;
|
|
296
296
|
if (this.writeQueue) await Promise.all([this.writeQueue.invalidateCachedSession(sessionId), sessionRecord.userSitekeyIpHash ? this.writeQueue.invalidateCachedSessionByHash(sessionRecord.userSitekeyIpHash) : Promise.resolve()]);
|
|
297
|
+
if (sessionRecord.siteKey !== void 0 && sessionRecord.siteKey !== clientSettings.account) {
|
|
298
|
+
this.logger.warn(() => ({
|
|
299
|
+
msg: "Session was issued for a different site key",
|
|
300
|
+
data: {
|
|
301
|
+
account: clientSettings.account,
|
|
302
|
+
sessionId,
|
|
303
|
+
sessionSiteKey: sessionRecord.siteKey
|
|
304
|
+
}
|
|
305
|
+
}));
|
|
306
|
+
return {
|
|
307
|
+
valid: false,
|
|
308
|
+
reason: _prosopo_types.ResultReason.CAPTCHA_NO_SESSION_FOUND,
|
|
309
|
+
type: requestedCaptchaType
|
|
310
|
+
};
|
|
311
|
+
}
|
|
297
312
|
if (currentIP) {
|
|
298
313
|
const ipValidation = await this.validateSessionIP(sessionRecord, currentIP, env);
|
|
299
314
|
if (!ipValidation.valid) return {
|
|
@@ -491,6 +506,7 @@ var CaptchaManager = class CaptchaManager {
|
|
|
491
506
|
c1Length: result.collector1?.length || 0,
|
|
492
507
|
c2Length: result.collector2?.length || 0,
|
|
493
508
|
c3Length: result.collector3?.length || 0,
|
|
509
|
+
c4Length: result.collector4?.length || 0,
|
|
494
510
|
deviceCapability: result.deviceCapability
|
|
495
511
|
}
|
|
496
512
|
}));
|
|
@@ -7,8 +7,8 @@ let node_path = require("node:path");
|
|
|
7
7
|
* Loads a pool of precomputed, obfuscated detector bundles from disk and caches
|
|
8
8
|
* them in memory — the Node analogue of the Rust "bumblebee" `bundle_manager`.
|
|
9
9
|
* Each bundle is a `{id}.js` (served to the browser) paired with a `{id}.json`
|
|
10
|
-
* (`{ privateKey, innerConfig, payloadLayout }`, kept server-side)
|
|
11
|
-
* the catcher `bundle:pool` build script.
|
|
10
|
+
* (`{ privateKey, innerConfig, payloadLayout, keyMap }`, kept server-side)
|
|
11
|
+
* produced by the catcher `bundle:pool` build script.
|
|
12
12
|
*
|
|
13
13
|
* A bundle is assigned per detector session by {@link DetectorBundlePool.at},
|
|
14
14
|
* served by id, and resolved again at decryption time so the provider uses the
|
|
@@ -172,7 +172,8 @@ function persistDetectorBundlePool(bundles, dir = globalPoolDir) {
|
|
|
172
172
|
privateKey: bundle.privateKey,
|
|
173
173
|
innerConfig: bundle.innerConfig,
|
|
174
174
|
...bundle.release && { release: bundle.release },
|
|
175
|
-
...bundle.payloadLayout && { payloadLayout: bundle.payloadLayout }
|
|
175
|
+
...bundle.payloadLayout && { payloadLayout: bundle.payloadLayout },
|
|
176
|
+
...bundle.keyMap && { keyMap: bundle.keyMap }
|
|
176
177
|
}), {
|
|
177
178
|
encoding: "utf8",
|
|
178
179
|
mode: 384
|
|
@@ -217,7 +217,10 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
217
217
|
verified: false,
|
|
218
218
|
status: "API.CLIENT_SESSION_MISMATCH"
|
|
219
219
|
};
|
|
220
|
-
await this.db.
|
|
220
|
+
if (!await this.db.claimSessionServerCheck(sessionId)) return {
|
|
221
|
+
verified: false,
|
|
222
|
+
status: "API.USER_ALREADY_VERIFIED"
|
|
223
|
+
};
|
|
221
224
|
return {
|
|
222
225
|
verified: true,
|
|
223
226
|
status: "API.USER_VERIFIED"
|