@prosopo/provider 4.13.2 → 4.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build$colon$cjs.log +5 -5
- package/.turbo/turbo-build$colon$tsc.log +24 -24
- package/.turbo/turbo-build.log +6 -6
- package/CHANGELOG.md +5 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +61 -11
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +61 -11
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +21 -0
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +10 -3
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +2 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +21 -0
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.js +11 -4
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +86 -0
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +77 -0
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@4.13.
|
|
2
|
+
> @prosopo/provider@4.13.3 build:cjs
|
|
3
3
|
> NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
|
|
4
4
|
|
|
5
5
|
ViteCommonJSConfig: .
|
|
@@ -142,18 +142,18 @@ rendering chunks...
|
|
|
142
142
|
[2mdist/cjs/[22m[36mtasks/decisionMachine/decisionMachineRunner.cjs [39m[1m[2m10.59 kB[22m[1m[22m
|
|
143
143
|
[2mdist/cjs/[22m[36mapi/blacklistRequestInspector.cjs [39m[1m[2m10.61 kB[22m[1m[22m
|
|
144
144
|
[2mdist/cjs/[22m[36mutil.cjs [39m[1m[2m12.59 kB[22m[1m[22m
|
|
145
|
-
[2mdist/cjs/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.cjs [39m[1m[2m12.71 kB[22m[1m[22m
|
|
146
145
|
[2mdist/cjs/[22m[36mapi/verify.cjs [39m[1m[2m13.49 kB[22m[1m[22m
|
|
147
|
-
[2mdist/cjs/[22m[
|
|
146
|
+
[2mdist/cjs/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.cjs [39m[1m[2m15.11 kB[22m[1m[22m
|
|
148
147
|
[2mdist/cjs/[22m[36mtasks/client/clientTasks.cjs [39m[1m[2m15.74 kB[22m[1m[22m
|
|
148
|
+
[2mdist/cjs/[22m[36mtasks/frictionless/frictionlessTasks.cjs [39m[1m[2m16.52 kB[22m[1m[22m
|
|
149
149
|
[2mdist/cjs/[22m[36mtasks/captchaManager.cjs [39m[1m[2m18.16 kB[22m[1m[22m
|
|
150
150
|
[2mdist/cjs/[22m[36mtasks/detection/decodeBehavior.cjs [39m[1m[2m19.16 kB[22m[1m[22m
|
|
151
151
|
[2mdist/cjs/[22m[36mtasks/puzzleCaptcha/puzzleTasks.cjs [39m[1m[2m21.51 kB[22m[1m[22m
|
|
152
152
|
[2mdist/cjs/[22m[36mtasks/detection/decodeSimd.cjs [39m[1m[2m21.53 kB[22m[1m[22m
|
|
153
|
-
[2mdist/cjs/[22m[36mtasks/powCaptcha/powTasks.cjs [39m[1m[
|
|
153
|
+
[2mdist/cjs/[22m[36mtasks/powCaptcha/powTasks.cjs [39m[1m[2m24.31 kB[22m[1m[22m
|
|
154
154
|
[2mdist/cjs/[22m[36mtasks/imgCaptcha/imgCaptchaTasks.cjs [39m[1m[2m28.81 kB[22m[1m[22m
|
|
155
155
|
[2mdist/cjs/[22m[36mtasks/detection/decodePayload.cjs [39m[1m[2m29.94 kB[22m[1m[22m
|
|
156
|
-
[32m✓ built in
|
|
156
|
+
[32m✓ built in 750ms[39m
|
|
157
157
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeBehavior.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodeBehavior.js
|
|
158
158
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodePayload.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodePayload.js
|
|
159
159
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeSimd.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodeSimd.js
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@4.13.
|
|
2
|
+
> @prosopo/provider@4.13.3 build:tsc
|
|
3
3
|
> tsc --build --verbose
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
3:58:46 PM - Projects in this build:
|
|
6
6
|
* ../../dev/config/tsconfig.json
|
|
7
7
|
* ../util/tsconfig.json
|
|
8
8
|
* ../logger/tsconfig.json
|
|
@@ -25,47 +25,47 @@
|
|
|
25
25
|
* ../load-balancer/tsconfig.json
|
|
26
26
|
* tsconfig.json
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
3:58:46 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
3:58:46 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
3:58:46 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
3:58:46 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/index.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
3:58:46 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
3:58:46 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
3:58:46 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
3:58:46 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/batches.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
3:58:46 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
3:58:46 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
3:58:46 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
3:58:46 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/ruleRecord.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
3:58:46 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types/captcha.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
3:58:46 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/mongoGlobalSetup.ts' is older than output '../database/tsconfig.tsbuildinfo'
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
3:58:46 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
3:58:46 PM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/index.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
3:58:46 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
3:58:46 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/tests/unit/errorHandler.unit.test.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
3:58:46 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
3:58:46 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/balancer.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
3:58:46 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
3:58:46 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
|
|
71
71
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@4.13.
|
|
2
|
+
> @prosopo/provider@4.13.3 build
|
|
3
3
|
> npm run build:cross-env -- --mode ${NODE_ENV:-development}
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @prosopo/provider@4.13.
|
|
6
|
+
> @prosopo/provider@4.13.3 build:cross-env
|
|
7
7
|
> vite build --config vite.esm.config.ts --mode production
|
|
8
8
|
|
|
9
9
|
ViteEsmConfig: .
|
|
@@ -143,18 +143,18 @@ rendering chunks...
|
|
|
143
143
|
[2mdist/[22m[36mapi/blacklistRequestInspector.js [39m[1m[2m10.35 kB[22m[1m[22m
|
|
144
144
|
[2mdist/[22m[36mtasks/decisionMachine/decisionMachineRunner.js [39m[1m[2m10.54 kB[22m[1m[22m
|
|
145
145
|
[2mdist/[22m[36mutil.js [39m[1m[2m12.17 kB[22m[1m[22m
|
|
146
|
-
[2mdist/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.js [39m[1m[2m12.34 kB[22m[1m[22m
|
|
147
146
|
[2mdist/[22m[36mapi/verify.js [39m[1m[2m12.98 kB[22m[1m[22m
|
|
148
|
-
[2mdist/[22m[
|
|
147
|
+
[2mdist/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.js [39m[1m[2m14.72 kB[22m[1m[22m
|
|
149
148
|
[2mdist/[22m[36mtasks/client/clientTasks.js [39m[1m[2m15.48 kB[22m[1m[22m
|
|
149
|
+
[2mdist/[22m[36mtasks/frictionless/frictionlessTasks.js [39m[1m[2m16.22 kB[22m[1m[22m
|
|
150
150
|
[2mdist/[22m[36mtasks/captchaManager.js [39m[1m[2m17.84 kB[22m[1m[22m
|
|
151
151
|
[2mdist/[22m[36mtasks/detection/decodeBehavior.js [39m[1m[2m19.02 kB[22m[1m[22m
|
|
152
152
|
[2mdist/[22m[36mtasks/puzzleCaptcha/puzzleTasks.js [39m[1m[2m21.20 kB[22m[1m[22m
|
|
153
153
|
[2mdist/[22m[36mtasks/detection/decodeSimd.js [39m[1m[2m21.39 kB[22m[1m[22m
|
|
154
|
-
[2mdist/[22m[36mtasks/powCaptcha/powTasks.js [39m[1m[2m23.
|
|
154
|
+
[2mdist/[22m[36mtasks/powCaptcha/powTasks.js [39m[1m[2m23.90 kB[22m[1m[22m
|
|
155
155
|
[2mdist/[22m[36mtasks/imgCaptcha/imgCaptchaTasks.js [39m[1m[2m28.37 kB[22m[1m[22m
|
|
156
156
|
[2mdist/[22m[36mtasks/detection/decodePayload.js [39m[1m[2m29.92 kB[22m[1m[22m
|
|
157
|
-
[32m✓ built in 1.
|
|
157
|
+
[32m✓ built in 1.43s[39m
|
|
158
158
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeBehavior.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodeBehavior.js
|
|
159
159
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodePayload.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodePayload.js
|
|
160
160
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeSimd.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodeSimd.js
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# @prosopo/provider
|
|
2
2
|
|
|
3
|
+
## 4.13.3
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- acf19f8: fix(provider): evict dedup session in `/frictionless` when the configured routing machine wants a different captchaType than the cached session. Previously the dedup short-circuit only checked the access policy, so a freshly-published routing machine was invisible to any user with an active dedup pointer — the initial frictionless call returned the stale baseline, the post-PoW router then minted an escalation session the widget couldn't follow, and the next `/captcha/{type}` call surfaced `API.INCORRECT_CAPTCHA_TYPE` with no path forward. Adds `FrictionlessManager.applyRoutingMachine(baseline, ctx)` as the public wrapper used by the handler.
|
|
7
|
+
|
|
3
8
|
## 4.13.2
|
|
4
9
|
### Patch Changes
|
|
5
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAyBtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBA2iBG"}
|
|
@@ -5,6 +5,7 @@ import { sanitisePageUrl, flatten } from "@prosopo/util";
|
|
|
5
5
|
import { getCompositeIpAddress } from "../../../compositeIpAddress.js";
|
|
6
6
|
import "../../../tasks/index.js";
|
|
7
7
|
import { derivePlatform } from "../../../utils/devicePlatform.js";
|
|
8
|
+
import { hashUserAgent } from "../../../utils/hashUserAgent.js";
|
|
8
9
|
import { hashUserIp } from "../../../utils/hashUserIp.js";
|
|
9
10
|
import { normalizeRequestIp } from "../../../utils/normalizeRequestIp.js";
|
|
10
11
|
import { getMaintenanceMode } from "../../admin/apiToggleMaintenanceModeEndpoint.js";
|
|
@@ -114,8 +115,11 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
114
115
|
if (dedup) {
|
|
115
116
|
const dedupCountryCode = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.countryCode : void 0;
|
|
116
117
|
const dedupAsn = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.asnNumber : void 0;
|
|
118
|
+
const dedupIsMobile = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.isMobile : void 0;
|
|
119
|
+
const dedupFlatHeaders = flatten(req.headers);
|
|
120
|
+
const dedupUserAgent = String(req.headers["user-agent"] ?? "");
|
|
117
121
|
const dedupUserScope = getRequestUserScope(
|
|
118
|
-
|
|
122
|
+
dedupFlatHeaders,
|
|
119
123
|
req.ja4,
|
|
120
124
|
normalizedIp,
|
|
121
125
|
user,
|
|
@@ -130,15 +134,54 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
130
134
|
dedupUserScope
|
|
131
135
|
))[0];
|
|
132
136
|
const dedupConflictsWithPolicy = dedupAccessPolicy !== void 0 && (dedupAccessPolicy.type === AccessPolicyType.Block || dedupAccessPolicy.captchaType !== void 0 && dedupAccessPolicy.captchaType !== dedup.captchaType);
|
|
133
|
-
|
|
137
|
+
const cachedCaptchaType = dedup.captchaType;
|
|
138
|
+
const dedupRouted = normalizedIp ? await tasks.frictionlessManager.applyRoutingMachine(
|
|
139
|
+
{
|
|
140
|
+
captchaType: cachedCaptchaType,
|
|
141
|
+
...dedup.session.solvedImagesCount !== void 0 && {
|
|
142
|
+
solvedImagesCount: dedup.session.solvedImagesCount
|
|
143
|
+
},
|
|
144
|
+
...dedup.session.powDifficulty !== void 0 && {
|
|
145
|
+
powDifficulty: dedup.session.powDifficulty
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
dappAccount: dapp,
|
|
150
|
+
userAccount: user,
|
|
151
|
+
ip: normalizedIp,
|
|
152
|
+
...dedupCountryCode && { countryCode: dedupCountryCode },
|
|
153
|
+
score: dedup.session.score,
|
|
154
|
+
platform: derivePlatform(
|
|
155
|
+
dedupUserAgent,
|
|
156
|
+
dedup.session.webView,
|
|
157
|
+
{
|
|
158
|
+
...typeof dedupIsMobile === "boolean" && {
|
|
159
|
+
isMobile: dedupIsMobile
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
),
|
|
163
|
+
raw: {
|
|
164
|
+
headers: dedupFlatHeaders,
|
|
165
|
+
userAgent: dedupUserAgent,
|
|
166
|
+
...req.ja4 && { ja4: req.ja4 }
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
) : { captchaType: cachedCaptchaType };
|
|
170
|
+
const dedupConflictsWithRouting = dedupRouted.captchaType !== cachedCaptchaType;
|
|
171
|
+
if (dedupConflictsWithPolicy || dedupConflictsWithRouting) {
|
|
134
172
|
req.logger.info(() => ({
|
|
135
|
-
msg: "Evicting reused session: cached captchaType conflicts with access policy",
|
|
173
|
+
msg: "Evicting reused session: cached captchaType conflicts with access policy or routing machine",
|
|
136
174
|
data: {
|
|
137
175
|
userSitekeyIpHash,
|
|
138
176
|
sessionId: dedup.sessionId,
|
|
139
177
|
cachedCaptchaType: dedup.captchaType,
|
|
140
|
-
|
|
141
|
-
|
|
178
|
+
...dedupConflictsWithPolicy && {
|
|
179
|
+
policyType: dedupAccessPolicy?.type,
|
|
180
|
+
policyCaptchaType: dedupAccessPolicy?.captchaType
|
|
181
|
+
},
|
|
182
|
+
...dedupConflictsWithRouting && {
|
|
183
|
+
routedCaptchaType: dedupRouted.captchaType
|
|
184
|
+
}
|
|
142
185
|
}
|
|
143
186
|
}));
|
|
144
187
|
await tasks.db.checkAndRemoveSession(dedup.sessionId);
|
|
@@ -223,14 +266,14 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
223
266
|
)
|
|
224
267
|
]);
|
|
225
268
|
const {
|
|
226
|
-
baseBotScore,
|
|
227
|
-
timestamp,
|
|
228
|
-
userId,
|
|
229
|
-
userAgent,
|
|
269
|
+
baseBotScore: rawBaseBotScore,
|
|
270
|
+
timestamp: rawTimestamp,
|
|
271
|
+
userId: rawUserId,
|
|
272
|
+
userAgent: rawUserAgent,
|
|
230
273
|
webView,
|
|
231
274
|
iFrame,
|
|
232
275
|
decryptedHeadHash,
|
|
233
|
-
decryptionFailed,
|
|
276
|
+
decryptionFailed: rawDecryptionFailed,
|
|
234
277
|
triggeredDetectors,
|
|
235
278
|
shadowDomPenalty,
|
|
236
279
|
entropyMathRandomFingerprint,
|
|
@@ -238,6 +281,12 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
238
281
|
entropyWallClockOffsetMs,
|
|
239
282
|
entropyMathRandomFirst
|
|
240
283
|
} = decryptedPayload;
|
|
284
|
+
const detectorOverride = process.env.PROSOPO_TEST_FRICTIONLESS_DETECTOR_OVERRIDE === "1";
|
|
285
|
+
const baseBotScore = detectorOverride ? 0 : rawBaseBotScore;
|
|
286
|
+
const timestamp = detectorOverride ? Date.now() : rawTimestamp;
|
|
287
|
+
const userId = detectorOverride ? req.headers["prosopo-user"] : rawUserId;
|
|
288
|
+
const userAgent = detectorOverride ? hashUserAgent(req.headers["user-agent"] ?? "") : rawUserAgent;
|
|
289
|
+
const decryptionFailed = detectorOverride ? false : rawDecryptionFailed;
|
|
241
290
|
req.logger.debug(() => ({
|
|
242
291
|
msg: "Decrypted payload",
|
|
243
292
|
data: {
|
|
@@ -245,7 +294,8 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
245
294
|
timestamp,
|
|
246
295
|
userId,
|
|
247
296
|
userAgent,
|
|
248
|
-
webView
|
|
297
|
+
webView,
|
|
298
|
+
...detectorOverride && { detectorOverride: true }
|
|
249
299
|
}
|
|
250
300
|
}));
|
|
251
301
|
let botScore = baseBotScore + lScore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACN,SAAS,EACT,WAAW,EACX,0CAA0C,EAC1C,QAAQ,GAER,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,gBAAgB,GAEhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACN,cAAc,EACd,uBAAuB,EACvB,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAC;AAEzE,eAAe,CACd,GAAwB,EACxB,sBAA0C,EACzC,EAAE,CACH,KAAK,EACJ,GAA+B,EAC/B,GAAa,EACb,IAAkB,EACjB,EAAE;IACH,IAAI,CAAC;QACJ,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtB,GAAG,EAAE,gCAAgC;gBACrC,IAAI,EAAE;oBACL,MAAM,EAAE,GAAG,CAAC,UAAU;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;iBAClB;aACD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,UAAU,EAAE,kBAAkB,GAC9B,GAAG,0CAA0C,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAQ/D,MAAM,UAAU,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,WAAW,GAChB,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACtB,GAAG,EAAE,4BAA4B;YACjC,IAAI,EAAE;gBACL,KAAK;gBACL,IAAI;gBACJ,IAAI;gBACJ,YAAY;gBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;aACzC;SACD,CAAC,CAAC,CAAC;QAOJ,IAAI,kBAAkB,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtB,GAAG,EAAE,+DAA+D;gBACpE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACpB,CAAC,CAAC,CAAC;YACJ,OAAO,GAAG,CAAC,IAAI,CACd,oCAAoC,CACnC,WAAW,CAAC,GAAG,EACf,GAAG,CAAC,MAAM,CAAC,IAAI,CACf,CACD,CAAC;QACH,CAAC;QAQD,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtB,GAAG,EAAE,0DAA0D;gBAC/D,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACpB,CAAC,CAAC,CAAC;YACJ,OAAO,GAAG,CAAC,IAAI,CACd,oCAAoC,CACnC,WAAW,CAAC,GAAG,EACf,GAAG,CAAC,MAAM,CAAC,IAAI,CACf,CACD,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAS/D,MAAM,CAAC,mBAAmB,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,GAClE,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,2BAA2B,CAAC,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC;YACpE,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC;YAChE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAC;QAEJ,IAAI,aAAa,EAAE,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtB,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE,6BAA6B;aAClC,CAAC,CAAC,CAAC;YACJ,OAAO,IAAI,CACV,IAAI,eAAe,CAAC,iBAAiB,EAAE;gBACtC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC3C,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;aAClB,CAAC,CACF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO,IAAI,CACV,IAAI,eAAe,CAAC,6BAA6B,EAAE;gBAClD,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;gBACrC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;aAClB,CAAC,CACF,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YAcX,MAAM,gBAAgB,GACrB,GAAG,CAAC,MAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;gBAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW;gBACxB,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,QAAQ,GACb,GAAG,CAAC,MAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;gBAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS;gBACtB,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,aAAa,GAClB,GAAG,CAAC,MAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;gBAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;gBACrB,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,mBAAmB,CACzC,gBAAgB,EAChB,GAAG,CAAC,GAAG,EACP,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,CACR,CAAC;YACF,MAAM,iBAAiB,GAAG,CACzB,MAAM,KAAK,CAAC,mBAAmB,CAAC,4BAA4B,CAC3D,sBAAsB,EACtB,IAAI,EACJ,cAAc,CACd,CACD,CAAC,CAAC,CAAC,CAAC;YACL,MAAM,wBAAwB,GAC7B,iBAAiB,KAAK,SAAS;gBAC/B,CAAC,iBAAiB,CAAC,IAAI,KAAK,gBAAgB,CAAC,KAAK;oBACjD,CAAC,iBAAiB,CAAC,WAAW,KAAK,SAAS;wBAC3C,iBAAiB,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YAczD,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAGX,CAAC;YACtB,MAAM,WAAW,GAAG,YAAY;gBAC/B,CAAC,CAAC,MAAM,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,CACnD;oBACC,WAAW,EAAE,iBAAiB;oBAC9B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI;wBACpD,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;qBAClD,CAAC;oBACF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI;wBAChD,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;qBAC1C,CAAC;iBACF,EACD;oBACC,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,IAAI;oBACjB,EAAE,EAAE,YAAY;oBAChB,GAAG,CAAC,gBAAgB,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;oBAC1D,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;oBAC1B,QAAQ,EAAE,cAAc,CACvB,cAAc,EACd,KAAK,CAAC,OAAO,CAAC,OAAO,EACrB;wBACC,GAAG,CAAC,OAAO,aAAa,KAAK,SAAS,IAAI;4BACzC,QAAQ,EAAE,aAAa;yBACvB,CAAC;qBACF,CACD;oBACD,GAAG,EAAE;wBACJ,OAAO,EAAE,gBAAgB;wBACzB,SAAS,EAAE,cAAc;wBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;qBAChC;iBACD,CACD;gBACF,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;YACtC,MAAM,yBAAyB,GAC9B,WAAW,CAAC,WAAW,KAAK,iBAAiB,CAAC;YAE/C,IAAI,wBAAwB,IAAI,yBAAyB,EAAE,CAAC;gBAC3D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtB,GAAG,EAAE,6FAA6F;oBAClG,IAAI,EAAE;wBACL,iBAAiB;wBACjB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,iBAAiB,EAAE,KAAK,CAAC,WAAW;wBACpC,GAAG,CAAC,wBAAwB,IAAI;4BAC/B,UAAU,EAAE,iBAAiB,EAAE,IAAI;4BACnC,iBAAiB,EAAE,iBAAiB,EAAE,WAAW;yBACjD,CAAC;wBACF,GAAG,CAAC,yBAAyB,IAAI;4BAChC,iBAAiB,EAAE,WAAW,CAAC,WAAW;yBAC1C,CAAC;qBACF;iBACD,CAAC,CAAC,CAAC;gBAIJ,MAAM,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtD,MAAM,OAAO,CAAC,GAAG,CAAC;oBACjB,KAAK,CAAC,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC;wBACzD,OAAO,CAAC,OAAO,EAAE;oBAClB,KAAK,CAAC,UAAU,EAAE,6BAA6B,CAC9C,iBAAiB,CACjB,IAAI,OAAO,CAAC,OAAO,EAAE;iBACtB,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtB,GAAG,EAAE,0DAA0D;oBAC/D,IAAI,EAAE;wBACL,iBAAiB;wBACjB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;qBAC9B;iBACD,CAAC,CAAC,CAAC;gBACJ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtB,GAAG,EAAE,uBAAuB;oBAC5B,IAAI,EAAE;wBACL,QAAQ,EAAE,eAAe;wBACzB,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC1B;iBACD,CAAC,CAAC,CAAC;gBACJ,0BAA0B,CAAC,eAAe,CAAC,CAAC;gBAC5C,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBAClC,OAAO,GAAG,CAAC,IAAI,CAAC;oBACf,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,WAGV;oBACrB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS;oBACtC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI;oBACxB,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC;iBAC1C,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,WAAW,GAChB,GAAG,CAAC,MAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;YAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW;YACxB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,GAAG,GACR,GAAG,CAAC,MAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;YAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS;YACtB,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,oBAAoB,GAAG,MAAM,oCAAoC,CACtE;YACC,KAAK;YACL,GAAG;YACH,YAAY;YACZ,KAAK;YACL,IAAI;YACJ,SAAS;YACT,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW;YACX,WAAW;YACX,iBAAiB;YACjB,MAAM,EAAE,GAAG,CAAC,MAAM;SAClB,EACD,GAAG,CACH,CAAC;QACF,IAAI,oBAAoB;YAAE,OAAO,oBAAoB,CAAC;QAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,cAAc,CACtD,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CACpC,CAAC;QAEF,MAAM,SAAS,GAAG,mBAAmB,CACpC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EACpB,GAAG,CAAC,GAAG,EACP,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,WAAW,EACX,GAAG,CACH,CAAC;QAOF,MAAM,CAAC,gBAAgB,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxE,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;YACzD,KAAK,CAAC,mBAAmB,CAAC,cAAc,CACvC,YAAY,EACZ,WAAW,CAAC,YAAY,EACxB,GAAG,CACH;YACD,KAAK,CAAC,mBAAmB,CAAC,4BAA4B,CACrD,sBAAsB,EACtB,IAAI,EACJ,SAAS,CACT;SACD,CAAC,CAAC;QAEH,MAAM,EACL,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,YAAY,EACvB,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAAE,mBAAmB,EACrC,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,GACtB,GAAG,gBAAgB,CAAC;QAWrB,MAAM,gBAAgB,GACrB,OAAO,CAAC,GAAG,CAAC,2CAA2C,KAAK,GAAG,CAAC;QACjE,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QAC5D,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/D,MAAM,MAAM,GAAG,gBAAgB;YAC9B,CAAC,CAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAwB;YACrD,CAAC,CAAC,SAAS,CAAC;QAIb,MAAM,SAAS,GAAG,gBAAgB;YACjC,CAAC,CAAC,aAAa,CAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAY,IAAI,EAAE,CAAC;YAC5D,CAAC,CAAC,YAAY,CAAC;QAChB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAExE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACvB,GAAG,EAAE,mBAAmB;YACxB,IAAI,EAAE;gBACL,YAAY;gBACZ,SAAS;gBACT,MAAM;gBACN,SAAS;gBACT,OAAO;gBACP,GAAG,CAAC,gBAAgB,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;aACnD;SACD,CAAC,CAAC,CAAC;QAEJ,IAAI,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;QAErC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,IAAI,CACV,IAAI,eAAe,CAAC,MAAM,IAAI,iBAAiB,EAAE;gBAChD,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC3C,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;aAClB,CAAC,CACF,CAAC;QACH,CAAC;QAED,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,YAAY,GACjB,YAAY,CAAC,QAAQ,EAAE,qBAAqB;YAC5C,8BAA8B,CAAC;QAEhC,IAAI,eAAe,GAAoB;YACtC,SAAS,EAAE,YAAY;YACvB,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,kBAAkB;gBACrB,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC;YACzD,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,CAAC;SAC3D,CAAC;QAEF,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;YAC1C,KAAK;YACL,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,YAAY;YACvB,eAAe;YACf,SAAS;YACT,OAAO;YACP,MAAM;YACN,iBAAiB;YACjB,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,WAAW;YACjB,GAAG,CAAC,mBAAmB,IAAI,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;YACjE,GAAG,CAAC,4BAA4B,KAAK,SAAS,IAAI;gBACjD,4BAA4B;aAC5B,CAAC;YACF,GAAG,CAAC,wBAAwB,KAAK,SAAS,IAAI;gBAC7C,wBAAwB;aACxB,CAAC;YACF,GAAG,CAAC,wBAAwB,KAAK,SAAS,IAAI;gBAC7C,wBAAwB;aACxB,CAAC;YACF,GAAG,CAAC,sBAAsB,KAAK,SAAS,IAAI;gBAC3C,sBAAsB;aACtB,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GACjB,GAAG,CAAC,MAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;YAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;YACrB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,aAAa,GAAG,SAAS,IAAI,EAAE,CAAC;QACtC,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;YAC3C,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,EAAE,EAAE,YAAY;YAChB,WAAW;YACX,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE;gBAChD,GAAG,CAAC,OAAO,YAAY,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;aACpE,CAAC;YACF,GAAG,EAAE;gBACJ,OAAO,EAAE,WAAW;gBACpB,SAAS,EAAE,aAAa;gBACxB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;aAChC;SACD,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,mBAAmB,GAAG,MAAM,kBAAkB,CACnD;YACC,KAAK;YACL,YAAY;YACZ,gBAAgB;YAChB,YAAY;YACZ,QAAQ;YACR,eAAe;YACf,iBAAiB;YACjB,IAAI;YACJ,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW;YACX,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS;SACT,EACD,GAAG,CACH,CAAC;QACF,IAAI,mBAAmB,CAAC,OAAO;YAAE,OAAO,mBAAmB,CAAC,QAAQ,CAAC;QACrE,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC;QACxC,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC;QAEtD,OAAO,MAAM,kBAAkB,CAC9B;YACC,KAAK;YACL,GAAG;YACH,YAAY;YACZ,IAAI;YACJ,IAAI;YACJ,iBAAiB;YACjB,WAAW;YACX,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS;YACT,gBAAgB;YAChB,SAAS;YACT,MAAM;YACN,OAAO;YACP,iBAAiB;YACjB,YAAY;YACZ,QAAQ;YACR,eAAe;YACf,KAAK;YACL,YAAY;YACZ,UAAU;SACV,EACD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAClB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACvB,GAAG;YACH,GAAG,EAAE,yCAAyC;SAC9C,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CACV,IAAI,eAAe,CAAC,iBAAiB,EAAE;YACtC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;YAClC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CACF,CAAC;IACH,CAAC;AACF,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ const util = require("@prosopo/util");
|
|
|
6
6
|
const compositeIpAddress = require("../../../compositeIpAddress.cjs");
|
|
7
7
|
require("../../../tasks/index.cjs");
|
|
8
8
|
const devicePlatform = require("../../../utils/devicePlatform.cjs");
|
|
9
|
+
const hashUserAgent = require("../../../utils/hashUserAgent.cjs");
|
|
9
10
|
const hashUserIp = require("../../../utils/hashUserIp.cjs");
|
|
10
11
|
const normalizeRequestIp = require("../../../utils/normalizeRequestIp.cjs");
|
|
11
12
|
const apiToggleMaintenanceModeEndpoint = require("../../admin/apiToggleMaintenanceModeEndpoint.cjs");
|
|
@@ -115,8 +116,11 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
115
116
|
if (dedup) {
|
|
116
117
|
const dedupCountryCode = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.countryCode : void 0;
|
|
117
118
|
const dedupAsn = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.asnNumber : void 0;
|
|
119
|
+
const dedupIsMobile = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.isMobile : void 0;
|
|
120
|
+
const dedupFlatHeaders = util.flatten(req.headers);
|
|
121
|
+
const dedupUserAgent = String(req.headers["user-agent"] ?? "");
|
|
118
122
|
const dedupUserScope = blacklistRequestInspector.getRequestUserScope(
|
|
119
|
-
|
|
123
|
+
dedupFlatHeaders,
|
|
120
124
|
req.ja4,
|
|
121
125
|
normalizedIp,
|
|
122
126
|
user,
|
|
@@ -131,15 +135,54 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
131
135
|
dedupUserScope
|
|
132
136
|
))[0];
|
|
133
137
|
const dedupConflictsWithPolicy = dedupAccessPolicy !== void 0 && (dedupAccessPolicy.type === userAccessPolicy.AccessPolicyType.Block || dedupAccessPolicy.captchaType !== void 0 && dedupAccessPolicy.captchaType !== dedup.captchaType);
|
|
134
|
-
|
|
138
|
+
const cachedCaptchaType = dedup.captchaType;
|
|
139
|
+
const dedupRouted = normalizedIp ? await tasks$1.frictionlessManager.applyRoutingMachine(
|
|
140
|
+
{
|
|
141
|
+
captchaType: cachedCaptchaType,
|
|
142
|
+
...dedup.session.solvedImagesCount !== void 0 && {
|
|
143
|
+
solvedImagesCount: dedup.session.solvedImagesCount
|
|
144
|
+
},
|
|
145
|
+
...dedup.session.powDifficulty !== void 0 && {
|
|
146
|
+
powDifficulty: dedup.session.powDifficulty
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
dappAccount: dapp,
|
|
151
|
+
userAccount: user,
|
|
152
|
+
ip: normalizedIp,
|
|
153
|
+
...dedupCountryCode && { countryCode: dedupCountryCode },
|
|
154
|
+
score: dedup.session.score,
|
|
155
|
+
platform: devicePlatform.derivePlatform(
|
|
156
|
+
dedupUserAgent,
|
|
157
|
+
dedup.session.webView,
|
|
158
|
+
{
|
|
159
|
+
...typeof dedupIsMobile === "boolean" && {
|
|
160
|
+
isMobile: dedupIsMobile
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
),
|
|
164
|
+
raw: {
|
|
165
|
+
headers: dedupFlatHeaders,
|
|
166
|
+
userAgent: dedupUserAgent,
|
|
167
|
+
...req.ja4 && { ja4: req.ja4 }
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
) : { captchaType: cachedCaptchaType };
|
|
171
|
+
const dedupConflictsWithRouting = dedupRouted.captchaType !== cachedCaptchaType;
|
|
172
|
+
if (dedupConflictsWithPolicy || dedupConflictsWithRouting) {
|
|
135
173
|
req.logger.info(() => ({
|
|
136
|
-
msg: "Evicting reused session: cached captchaType conflicts with access policy",
|
|
174
|
+
msg: "Evicting reused session: cached captchaType conflicts with access policy or routing machine",
|
|
137
175
|
data: {
|
|
138
176
|
userSitekeyIpHash,
|
|
139
177
|
sessionId: dedup.sessionId,
|
|
140
178
|
cachedCaptchaType: dedup.captchaType,
|
|
141
|
-
|
|
142
|
-
|
|
179
|
+
...dedupConflictsWithPolicy && {
|
|
180
|
+
policyType: dedupAccessPolicy?.type,
|
|
181
|
+
policyCaptchaType: dedupAccessPolicy?.captchaType
|
|
182
|
+
},
|
|
183
|
+
...dedupConflictsWithRouting && {
|
|
184
|
+
routedCaptchaType: dedupRouted.captchaType
|
|
185
|
+
}
|
|
143
186
|
}
|
|
144
187
|
}));
|
|
145
188
|
await tasks$1.db.checkAndRemoveSession(dedup.sessionId);
|
|
@@ -224,14 +267,14 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
224
267
|
)
|
|
225
268
|
]);
|
|
226
269
|
const {
|
|
227
|
-
baseBotScore,
|
|
228
|
-
timestamp,
|
|
229
|
-
userId,
|
|
230
|
-
userAgent,
|
|
270
|
+
baseBotScore: rawBaseBotScore,
|
|
271
|
+
timestamp: rawTimestamp,
|
|
272
|
+
userId: rawUserId,
|
|
273
|
+
userAgent: rawUserAgent,
|
|
231
274
|
webView,
|
|
232
275
|
iFrame,
|
|
233
276
|
decryptedHeadHash,
|
|
234
|
-
decryptionFailed,
|
|
277
|
+
decryptionFailed: rawDecryptionFailed,
|
|
235
278
|
triggeredDetectors,
|
|
236
279
|
shadowDomPenalty,
|
|
237
280
|
entropyMathRandomFingerprint,
|
|
@@ -239,6 +282,12 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
239
282
|
entropyWallClockOffsetMs,
|
|
240
283
|
entropyMathRandomFirst
|
|
241
284
|
} = decryptedPayload;
|
|
285
|
+
const detectorOverride = process.env.PROSOPO_TEST_FRICTIONLESS_DETECTOR_OVERRIDE === "1";
|
|
286
|
+
const baseBotScore = detectorOverride ? 0 : rawBaseBotScore;
|
|
287
|
+
const timestamp = detectorOverride ? Date.now() : rawTimestamp;
|
|
288
|
+
const userId = detectorOverride ? req.headers["prosopo-user"] : rawUserId;
|
|
289
|
+
const userAgent = detectorOverride ? hashUserAgent.hashUserAgent(req.headers["user-agent"] ?? "") : rawUserAgent;
|
|
290
|
+
const decryptionFailed = detectorOverride ? false : rawDecryptionFailed;
|
|
242
291
|
req.logger.debug(() => ({
|
|
243
292
|
msg: "Decrypted payload",
|
|
244
293
|
data: {
|
|
@@ -246,7 +295,8 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
246
295
|
timestamp,
|
|
247
296
|
userId,
|
|
248
297
|
userAgent,
|
|
249
|
-
webView
|
|
298
|
+
webView,
|
|
299
|
+
...detectorOverride && { detectorOverride: true }
|
|
250
300
|
}
|
|
251
301
|
}));
|
|
252
302
|
let botScore = baseBotScore + lScore;
|
|
@@ -32,6 +32,27 @@ class FrictionlessManager extends captchaManager.CaptchaManager {
|
|
|
32
32
|
setRoutingContext(ctx) {
|
|
33
33
|
this.routingContext = ctx;
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Evaluate the configured routing machine against an arbitrary baseline +
|
|
37
|
+
* context, without going through `sendCaptcha`. Used by the dedup
|
|
38
|
+
* short-circuit to ask "if we reused this cached session, would the
|
|
39
|
+
* current routing machine still pick the same captchaType?" — if not,
|
|
40
|
+
* the cached session is evicted and the request falls through into the
|
|
41
|
+
* normal decision-machine flow (which will run the router again with
|
|
42
|
+
* fully-derived inputs).
|
|
43
|
+
*
|
|
44
|
+
* Returns the supplied baseline on any failure (no machine, machine
|
|
45
|
+
* throws, counter fetch failure, etc.), matching applyRouter's contract.
|
|
46
|
+
*/
|
|
47
|
+
async applyRoutingMachine(baseline, ctx) {
|
|
48
|
+
return routingMachine.applyRouter(
|
|
49
|
+
this.decisionMachineRunner,
|
|
50
|
+
this.usageCounters,
|
|
51
|
+
baseline,
|
|
52
|
+
ctx,
|
|
53
|
+
this.logger
|
|
54
|
+
);
|
|
55
|
+
}
|
|
35
56
|
setSessionParams(params) {
|
|
36
57
|
this.sessionParams = {
|
|
37
58
|
token: params.token,
|
|
@@ -269,14 +269,21 @@ class PowCaptchaManager extends captchaManager.CaptchaManager {
|
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
await Promise.all(writePromises);
|
|
272
|
-
if (!correct
|
|
272
|
+
if (!correct) {
|
|
273
273
|
return { verified: correct };
|
|
274
274
|
}
|
|
275
|
-
const
|
|
275
|
+
const escalateForMissingCoords = !coords && Boolean(challengeRecord.sessionId);
|
|
276
|
+
let routingOutput = this.postPowContext ? await this.runPostPowRouting({
|
|
276
277
|
challengeRecord,
|
|
277
278
|
challengeSplit,
|
|
278
279
|
behavioralDataPacked: decryptedBehavioralDataPacked
|
|
279
|
-
});
|
|
280
|
+
}) : void 0;
|
|
281
|
+
if (escalateForMissingCoords && routingOutput?.captchaType !== types.CaptchaType.image && routingOutput?.captchaType !== types.CaptchaType.puzzle) {
|
|
282
|
+
routingOutput = {
|
|
283
|
+
captchaType: types.CaptchaType.image,
|
|
284
|
+
reason: types.FrictionlessReason.MISSING_COORDINATES
|
|
285
|
+
};
|
|
286
|
+
}
|
|
280
287
|
return { verified: correct, routingOutput };
|
|
281
288
|
}
|
|
282
289
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Logger } from "@prosopo/logger";
|
|
2
|
-
import { CaptchaType, type CompositeIpAddress, type ContextType, FrictionlessReason, type GetFrictionlessCaptchaResponse, type IPInfoResponse, type KeyringPair, type ModeEnum, type ProsopoConfigOutput, type RequestHeaders, type ScoreComponents, type Session } from "@prosopo/types";
|
|
2
|
+
import { CaptchaType, type CompositeIpAddress, type ContextType, FrictionlessReason, type GetFrictionlessCaptchaResponse, type IPInfoResponse, type KeyringPair, type ModeEnum, type ProsopoConfigOutput, type RequestHeaders, type RoutingMachineBaseline, type RoutingMachineOutput, type ScoreComponents, type Session } from "@prosopo/types";
|
|
3
3
|
import type { IProviderDatabase } from "@prosopo/types-database";
|
|
4
4
|
import type { AccessPolicy } from "@prosopo/user-access-policy";
|
|
5
5
|
import { type UsageCounters } from "../../util/usageCounters.js";
|
|
@@ -20,6 +20,7 @@ export declare class FrictionlessManager extends CaptchaManager {
|
|
|
20
20
|
private readonly usageCounters;
|
|
21
21
|
constructor(db: IProviderDatabase, pair: KeyringPair, config: ProsopoConfigOutput, logger?: Logger, writeQueue?: import("@prosopo/database").RedisWriteQueue | null, decisionMachineRunner?: DecisionMachineRunner, usageCounters?: UsageCounters | null);
|
|
22
22
|
setRoutingContext(ctx: RoutingContext): void;
|
|
23
|
+
applyRoutingMachine(baseline: RoutingMachineBaseline, ctx: RoutingContext): Promise<RoutingMachineOutput>;
|
|
23
24
|
setSessionParams(params: Omit<Session, "sessionId" | "createdAt" | "captchaType">): void;
|
|
24
25
|
updateScore(score: number, scoreComponents: ScoreComponents): void;
|
|
25
26
|
checkLangRules(acceptLanguage: string): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAEN,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,kBAAkB,EAClB,KAAK,8BAA8B,EACnC,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,27 @@ class FrictionlessManager extends CaptchaManager {
|
|
|
31
31
|
setRoutingContext(ctx) {
|
|
32
32
|
this.routingContext = ctx;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate the configured routing machine against an arbitrary baseline +
|
|
36
|
+
* context, without going through `sendCaptcha`. Used by the dedup
|
|
37
|
+
* short-circuit to ask "if we reused this cached session, would the
|
|
38
|
+
* current routing machine still pick the same captchaType?" — if not,
|
|
39
|
+
* the cached session is evicted and the request falls through into the
|
|
40
|
+
* normal decision-machine flow (which will run the router again with
|
|
41
|
+
* fully-derived inputs).
|
|
42
|
+
*
|
|
43
|
+
* Returns the supplied baseline on any failure (no machine, machine
|
|
44
|
+
* throws, counter fetch failure, etc.), matching applyRouter's contract.
|
|
45
|
+
*/
|
|
46
|
+
async applyRoutingMachine(baseline, ctx) {
|
|
47
|
+
return applyRouter(
|
|
48
|
+
this.decisionMachineRunner,
|
|
49
|
+
this.usageCounters,
|
|
50
|
+
baseline,
|
|
51
|
+
ctx,
|
|
52
|
+
this.logger
|
|
53
|
+
);
|
|
54
|
+
}
|
|
34
55
|
setSessionParams(params) {
|
|
35
56
|
this.sessionParams = {
|
|
36
57
|
token: params.token,
|