@prosopo/provider 5.19.2 → 5.19.4
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 +10 -9
- package/.turbo/turbo-build$colon$tsc.log +28 -28
- package/.turbo/turbo-build.log +10 -9
- package/CHANGELOG.md +75 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +79 -23
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts +3 -0
- package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js +23 -5
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js +12 -2
- package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +79 -23
- package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +22 -3
- package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +12 -2
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +8 -5
- package/dist/cjs/tasks/frictionless/ipMatch.cjs +25 -4
- package/dist/cjs/tasks/puzzle/puzzleRenderer.cjs +17 -8
- package/dist/cjs/utils/devicePlatform.cjs +9 -5
- package/dist/cjs/utils/mobileSignals.cjs +69 -0
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +9 -6
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tasks/frictionless/ipMatch.d.ts +1 -1
- package/dist/tasks/frictionless/ipMatch.d.ts.map +1 -1
- package/dist/tasks/frictionless/ipMatch.js +25 -4
- package/dist/tasks/frictionless/ipMatch.js.map +1 -1
- package/dist/tasks/puzzle/puzzleRenderer.d.ts +8 -1
- package/dist/tasks/puzzle/puzzleRenderer.d.ts.map +1 -1
- package/dist/tasks/puzzle/puzzleRenderer.js +16 -8
- package/dist/tasks/puzzle/puzzleRenderer.js.map +1 -1
- package/dist/tests/integration/webBotAuthAuthenticated.integration.test.js +103 -5
- package/dist/tests/integration/webBotAuthAuthenticated.integration.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/puzzleTouchFloors.unit.test.d.ts +2 -0
- package/dist/tests/unit/api/captcha/puzzleTouchFloors.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/api/captcha/puzzleTouchFloors.unit.test.js +210 -0
- package/dist/tests/unit/api/captcha/puzzleTouchFloors.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/frictionless/ipMatch.unit.test.js +18 -0
- package/dist/tests/unit/tasks/frictionless/ipMatch.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js +18 -0
- package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js.map +1 -1
- package/dist/tests/unit/utils/devicePlatform.unit.test.js +9 -8
- package/dist/tests/unit/utils/devicePlatform.unit.test.js.map +1 -1
- package/dist/tests/unit/utils/mobileSignals.unit.test.d.ts +2 -0
- package/dist/tests/unit/utils/mobileSignals.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/utils/mobileSignals.unit.test.js +161 -0
- package/dist/tests/unit/utils/mobileSignals.unit.test.js.map +1 -0
- package/dist/utils/devicePlatform.d.ts +3 -3
- package/dist/utils/devicePlatform.d.ts.map +1 -1
- package/dist/utils/devicePlatform.js +9 -5
- package/dist/utils/devicePlatform.js.map +1 -1
- package/dist/utils/mobileSignals.d.ts +32 -0
- package/dist/utils/mobileSignals.d.ts.map +1 -0
- package/dist/utils/mobileSignals.js +68 -0
- package/dist/utils/mobileSignals.js.map +1 -0
- package/package.json +17 -17
|
@@ -46,13 +46,9 @@ var resolvePuzzleRenderSettings = (...overrides) => {
|
|
|
46
46
|
var pieceSizeSampler = require_stratifiedSampler.createStratifiedSampler();
|
|
47
47
|
/**
|
|
48
48
|
* Resolve the effective piece scale range from the same layered
|
|
49
|
-
* client-settings / traffic-filter overrides used for render settings
|
|
50
|
-
* draw a per-challenge piece size in pixels. Stratified so the distribution
|
|
51
|
-
* is evenly spread across the range even for short bursts of requests.
|
|
52
|
-
* Rounded to an integer because the pixel buffer is allocated as
|
|
53
|
-
* `size * size * 4`.
|
|
49
|
+
* client-settings / traffic-filter overrides used for render settings.
|
|
54
50
|
*/
|
|
55
|
-
var
|
|
51
|
+
var resolvePuzzlePieceScaleRange = (...overrides) => {
|
|
56
52
|
let min = _prosopo_types.puzzlePieceScaleMinDefault;
|
|
57
53
|
let max = _prosopo_types.puzzlePieceScaleMaxDefault;
|
|
58
54
|
for (const override of overrides) {
|
|
@@ -61,7 +57,19 @@ var resolvePuzzlePieceSize = (...overrides) => {
|
|
|
61
57
|
if (override.pieceScale.max !== void 0) max = override.pieceScale.max;
|
|
62
58
|
}
|
|
63
59
|
if (min > max) min = max;
|
|
64
|
-
|
|
60
|
+
return {
|
|
61
|
+
min,
|
|
62
|
+
max
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Draw a per-challenge piece size in pixels from a scale range. Stratified so
|
|
67
|
+
* the distribution is evenly spread across the range even for short bursts of
|
|
68
|
+
* requests. Rounded to an integer because the pixel buffer is allocated as
|
|
69
|
+
* `size * size * 4`.
|
|
70
|
+
*/
|
|
71
|
+
var samplePuzzlePieceSize = (range) => {
|
|
72
|
+
const scale = pieceSizeSampler.sample(range.min, range.max);
|
|
65
73
|
return Math.max(1, Math.round(_prosopo_puzzle_assets.DEFAULT_GEOMETRY.width * scale));
|
|
66
74
|
};
|
|
67
75
|
/**
|
|
@@ -94,5 +102,6 @@ var renderPuzzleImages = async (placement, settings = _prosopo_puzzle_assets.DEF
|
|
|
94
102
|
//#endregion
|
|
95
103
|
exports.isPuzzleRenderAvailable = isPuzzleRenderAvailable;
|
|
96
104
|
exports.renderPuzzleImages = renderPuzzleImages;
|
|
97
|
-
exports.
|
|
105
|
+
exports.resolvePuzzlePieceScaleRange = resolvePuzzlePieceScaleRange;
|
|
98
106
|
exports.resolvePuzzleRenderSettings = resolvePuzzleRenderSettings;
|
|
107
|
+
exports.samplePuzzlePieceSize = samplePuzzlePieceSize;
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
+
const require_mobileSignals = require("./mobileSignals.cjs");
|
|
1
2
|
//#region src/utils/devicePlatform.ts
|
|
2
3
|
var APPLE_UA_REGEX = /iPhone|iPad|iPod|Macintosh|Mac OS X/i;
|
|
3
|
-
var MOBILE_UA_REGEX = /Mobile|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/i;
|
|
4
4
|
/**
|
|
5
5
|
* Derive platform flags from server-visible signals. `isWebView` is supplied
|
|
6
6
|
* by the caller because that bit only comes from the encrypted bot-detection
|
|
7
|
-
* payload, not request headers. `isMobile`
|
|
8
|
-
*
|
|
7
|
+
* payload, not request headers. `isMobile` is a weighed verdict over whatever
|
|
8
|
+
* signals the caller can supply — see `deriveMobileVerdict`.
|
|
9
9
|
*/
|
|
10
|
-
var derivePlatform = (userAgent, webView,
|
|
10
|
+
var derivePlatform = (userAgent, webView, signals = {}) => ({
|
|
11
11
|
isApple: APPLE_UA_REGEX.test(userAgent),
|
|
12
12
|
isWebView: webView,
|
|
13
|
-
isMobile:
|
|
13
|
+
isMobile: require_mobileSignals.deriveMobileVerdict({
|
|
14
|
+
...signals,
|
|
15
|
+
userAgent,
|
|
16
|
+
webView
|
|
17
|
+
}).isMobile
|
|
14
18
|
});
|
|
15
19
|
var TRAFFIC_FILTER_CATEGORIES = [
|
|
16
20
|
"vpn",
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//#region src/utils/mobileSignals.ts
|
|
2
|
+
var MOBILE_UA_REGEX = /Mobile|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/i;
|
|
3
|
+
var DESKTOP_UA_REGEX = /Windows NT|Macintosh|X11|CrOS/i;
|
|
4
|
+
var MOBILE_PLATFORM_HINTS = ["android", "ios"];
|
|
5
|
+
var DESKTOP_PLATFORM_HINTS = [
|
|
6
|
+
"windows",
|
|
7
|
+
"macos",
|
|
8
|
+
"linux",
|
|
9
|
+
"chrome os"
|
|
10
|
+
];
|
|
11
|
+
var TUNNELLED_MSS_MIN = 1300;
|
|
12
|
+
var TUNNELLED_MSS_MAX = 1430;
|
|
13
|
+
var MOBILE_SIGNAL_WEIGHTS = {
|
|
14
|
+
userAgentMobile: 3,
|
|
15
|
+
userAgentDesktop: -3,
|
|
16
|
+
clientHintMobile: 3,
|
|
17
|
+
clientHintNotMobile: -3,
|
|
18
|
+
clientHintPlatformMobile: 3,
|
|
19
|
+
clientHintPlatformDesktop: -3,
|
|
20
|
+
touchCapability: 2,
|
|
21
|
+
pointerCapability: -3,
|
|
22
|
+
touchEvents: 2,
|
|
23
|
+
webView: 1,
|
|
24
|
+
network: 1
|
|
25
|
+
};
|
|
26
|
+
var readHeader = (headers, name) => {
|
|
27
|
+
const value = headers?.[name];
|
|
28
|
+
return typeof value === "string" && value !== "" ? value : void 0;
|
|
29
|
+
};
|
|
30
|
+
var deriveMobileVerdict = (signals) => {
|
|
31
|
+
let score = 0;
|
|
32
|
+
let corroborated = false;
|
|
33
|
+
const evidence = [];
|
|
34
|
+
const vote = (name, evidenceName = name) => {
|
|
35
|
+
score += MOBILE_SIGNAL_WEIGHTS[name];
|
|
36
|
+
evidence.push(evidenceName);
|
|
37
|
+
};
|
|
38
|
+
const voteCorroborating = (name, evidenceName = name) => {
|
|
39
|
+
vote(name, evidenceName);
|
|
40
|
+
corroborated = true;
|
|
41
|
+
};
|
|
42
|
+
const userAgent = signals.userAgent ?? "";
|
|
43
|
+
if (MOBILE_UA_REGEX.test(userAgent)) vote("userAgentMobile");
|
|
44
|
+
else if (DESKTOP_UA_REGEX.test(userAgent)) vote("userAgentDesktop");
|
|
45
|
+
const mobileHint = readHeader(signals.headers, "sec-ch-ua-mobile");
|
|
46
|
+
if (mobileHint === "?1") vote("clientHintMobile");
|
|
47
|
+
else if (mobileHint === "?0") vote("clientHintNotMobile");
|
|
48
|
+
const platformHint = readHeader(signals.headers, "sec-ch-ua-platform")?.replaceAll("\"", "").toLowerCase();
|
|
49
|
+
if (platformHint !== void 0) {
|
|
50
|
+
if (MOBILE_PLATFORM_HINTS.includes(platformHint)) vote("clientHintPlatformMobile");
|
|
51
|
+
else if (DESKTOP_PLATFORM_HINTS.includes(platformHint)) vote("clientHintPlatformDesktop");
|
|
52
|
+
}
|
|
53
|
+
if (signals.deviceCapability === "mobile") voteCorroborating("touchCapability");
|
|
54
|
+
else if (signals.deviceCapability === "desktop") vote("pointerCapability");
|
|
55
|
+
if (signals.touchEventCount !== void 0 && signals.touchEventCount > 0) voteCorroborating("touchEvents");
|
|
56
|
+
if (signals.webView === true) voteCorroborating("webView");
|
|
57
|
+
const onCarrier = signals.carrierNetwork === true;
|
|
58
|
+
const tunnelled = signals.tcpMss !== void 0 && signals.tcpMss >= TUNNELLED_MSS_MIN && signals.tcpMss <= TUNNELLED_MSS_MAX;
|
|
59
|
+
if (onCarrier || tunnelled) voteCorroborating("network", onCarrier && tunnelled ? "carrierNetwork+tunnelledMss" : onCarrier ? "carrierNetwork" : "tunnelledMss");
|
|
60
|
+
return {
|
|
61
|
+
isMobile: score >= 3,
|
|
62
|
+
corroborated,
|
|
63
|
+
score,
|
|
64
|
+
evidence
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
//#endregion
|
|
68
|
+
exports.MOBILE_SIGNAL_WEIGHTS = MOBILE_SIGNAL_WEIGHTS;
|
|
69
|
+
exports.deriveMobileVerdict = deriveMobileVerdict;
|
|
@@ -33,7 +33,7 @@ export declare class FrictionlessManager extends CaptchaManager {
|
|
|
33
33
|
updateScore(score: number, scoreComponents: ScoreComponents): void;
|
|
34
34
|
checkLangRules(acceptLanguage: string): number;
|
|
35
35
|
createSession(input: CreateSessionInput): Promise<Session>;
|
|
36
|
-
createAuthenticatedSession(token: string, ipAddress: CompositeIpAddress, webBotAuthAgent: string, siteKey: string, userSitekeyIpHash?: string, headers?: RequestHeaders, ipInfo?: IPInfoResponse, clientSessionId?: string): Promise<Session>;
|
|
36
|
+
createAuthenticatedSession(token: string, ipAddress: CompositeIpAddress, webBotAuthAgent: string | undefined, siteKey: string, userSitekeyIpHash?: string, headers?: RequestHeaders, ipInfo?: IPInfoResponse, clientSessionId?: string): Promise<Session>;
|
|
37
37
|
verifyAuthenticatedSession(sessionId: string, ip: string | undefined, clientSessionId: string | undefined): Promise<{
|
|
38
38
|
verified: boolean;
|
|
39
39
|
status: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { samplePuzzleDifficulty } from "../puzzle/puzzleDifficulty.js";
|
|
|
12
12
|
import { ipMatchesSession } from "./ipMatch.js";
|
|
13
13
|
import { applyRouter } from "./routingMachine.js";
|
|
14
14
|
import { ApiParams, CaptchaType, DEFAULT_MAX_TIMESTAMP_AGE, FrictionlessReason as FrictionlessReason$1, NO_MEASUREMENT_REASONS, SimdReadingsStage, clampImageRounds, puzzleMaxDifficultyDefault } from "@prosopo/types";
|
|
15
|
-
import { resolveMaxEscalationLevel, severityToPuzzleDifficulty } from "@prosopo/captcha-severity";
|
|
15
|
+
import { MAX_STALE_PAYLOAD_LEVEL, resolveMaxEscalationLevel, severityToPuzzleDifficulty } from "@prosopo/captcha-severity";
|
|
16
16
|
import { DEFAULT_RENDER_SETTINGS } from "@prosopo/puzzle-assets";
|
|
17
17
|
import { v4 } from "uuid";
|
|
18
18
|
//#region src/tasks/frictionless/frictionlessTasks.ts
|
|
@@ -111,7 +111,7 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
111
111
|
return checkLangRules(this.config, acceptLanguage);
|
|
112
112
|
}
|
|
113
113
|
async createSession(input) {
|
|
114
|
-
const { token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, mode, solvedImagesCount, powDifficulty, userSitekeyIpHash, reason, blocked, deleted, ipInfo, headers, bundleId, currentUrl, iframeUrl, d, tcpToChelloUs, chelloToHandshakeUs, simdReadings, puzzleTolerance, puzzle, iconOrderTolerance, iconOrder, isEscalation, originSessionId, refreshOf, refreshCount, refreshedAfterMs, isProtect, matchedRule, clientMetaData, webView = false, iFrame = false, decryptedHeadHash = "" } = input;
|
|
114
|
+
const { token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, mode, solvedImagesCount, powDifficulty, userSitekeyIpHash, reason, blocked, deleted, ipInfo, headers, bundleId, currentUrl, iframeUrl, d, tcpToChelloUs, chelloToHandshakeUs, simdReadings, puzzleTolerance, puzzle, puzzleLevel, iconOrderTolerance, iconOrder, isEscalation, originSessionId, refreshOf, refreshCount, refreshedAfterMs, isProtect, matchedRule, clientMetaData, webView = false, iFrame = false, decryptedHeadHash = "" } = input;
|
|
115
115
|
const sessionRecord = {
|
|
116
116
|
sessionId: `${getSessionIDPrefix(this.config.host)}-${v4()}`,
|
|
117
117
|
createdAt: /* @__PURE__ */ new Date(),
|
|
@@ -126,6 +126,7 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
126
126
|
powDifficulty,
|
|
127
127
|
...puzzleTolerance !== void 0 && { puzzleTolerance },
|
|
128
128
|
...puzzle && { puzzle },
|
|
129
|
+
...puzzleLevel !== void 0 && { puzzleLevel },
|
|
129
130
|
...iconOrderTolerance !== void 0 && { iconOrderTolerance },
|
|
130
131
|
...iconOrder && { iconOrder },
|
|
131
132
|
userSitekeyIpHash,
|
|
@@ -187,8 +188,8 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
187
188
|
decryptedHeadHash: "",
|
|
188
189
|
siteKey,
|
|
189
190
|
serverChecked: false,
|
|
190
|
-
agent:
|
|
191
|
-
webBotAuthAgent,
|
|
191
|
+
agent: webBotAuthAgent !== void 0,
|
|
192
|
+
...webBotAuthAgent && { webBotAuthAgent },
|
|
192
193
|
...ipInfo && { ipInfo },
|
|
193
194
|
...headers && { headers },
|
|
194
195
|
...clientSessionId && { clientMetaData: { clientSessionId } }
|
|
@@ -279,8 +280,9 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
279
280
|
const finalReason = switchedByUser ? FrictionlessReason$1.PUZZLE_USER_SWITCH : switchedByRefreshes ? FrictionlessReason$1.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
|
|
280
281
|
const finalPuzzleOverrides = finalCaptchaType === CaptchaType.puzzle ? (() => {
|
|
281
282
|
const maxLevel = resolveMaxEscalationLevel(this.routingContext?.puzzleMaxDifficulty ?? puzzleMaxDifficultyDefault, this.routingContext?.platform.isMobile ?? false);
|
|
282
|
-
const
|
|
283
|
-
const
|
|
283
|
+
const ceiling = finalReason === FrictionlessReason$1.OLD_TIMESTAMP ? Math.min(maxLevel, MAX_STALE_PAYLOAD_LEVEL) : maxLevel;
|
|
284
|
+
const level = finalReason !== void 0 && NO_MEASUREMENT_REASONS.has(finalReason) ? 0 : severityToPuzzleDifficulty(requestedSolvedImagesCount, this.routingContext?.baseImageRounds ?? this.config.captchas.solved.count, ceiling);
|
|
285
|
+
const difficulty = level > 0 ? samplePuzzleDifficulty(level, DEFAULT_RENDER_SETTINGS.holeDarken, ceiling) : void 0;
|
|
284
286
|
const tolerance = routed.puzzleTolerance ?? difficulty?.tolerance;
|
|
285
287
|
const puzzle = routed.puzzle || difficulty ? {
|
|
286
288
|
...difficulty?.puzzle ?? {},
|
|
@@ -312,6 +314,7 @@ var FrictionlessManager = class extends CaptchaManager {
|
|
|
312
314
|
blocked,
|
|
313
315
|
puzzleTolerance: finalPuzzleOverrides.puzzleTolerance,
|
|
314
316
|
puzzle: finalPuzzleOverrides.puzzle,
|
|
317
|
+
puzzleLevel: finalPuzzleOverrides.puzzleLevel,
|
|
315
318
|
iconOrderTolerance: finalIconOrderOverrides.iconOrderTolerance,
|
|
316
319
|
iconOrder: finalIconOrderOverrides.iconOrder,
|
|
317
320
|
deleted: void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frictionlessTasks.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frictionlessTasks.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipMatch.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/ipMatch.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ipMatch.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/ipMatch.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAsDxE,eAAO,MAAM,gBAAgB,eAChB,MAAM,aACP,kBAAkB,KAC3B,OAkBF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getCompositeIpAddress } from "../../compositeIpAddress.js";
|
|
2
|
+
import { IpAddressType } from "@prosopo/types";
|
|
2
3
|
//#region src/tasks/frictionless/ipMatch.ts
|
|
3
4
|
/**
|
|
4
5
|
* `CompositeIpAddress` types its halves as `bigint`, but that is only true of
|
|
@@ -21,10 +22,21 @@ var asBigInt = (half) => {
|
|
|
21
22
|
return null;
|
|
22
23
|
}
|
|
23
24
|
};
|
|
25
|
+
var V4_MAPPED_MARKER = 65535n;
|
|
26
|
+
/**
|
|
27
|
+
* A dual-stack socket reports an IPv4 client as `::ffff:a.b.c.d`, while the
|
|
28
|
+
* operator usually forwards the same client as `a.b.c.d`. Both are reduced to
|
|
29
|
+
* the plain v4 address so the binding compares the client, not the socket.
|
|
30
|
+
*/
|
|
31
|
+
var unmapV4 = (ip) => ip.type === IpAddressType.v6 && ip.upper === 0n && ip.lower >> 32n === V4_MAPPED_MARKER ? {
|
|
32
|
+
type: IpAddressType.v4,
|
|
33
|
+
lower: ip.lower & 4294967295n,
|
|
34
|
+
upper: 0n
|
|
35
|
+
} : ip;
|
|
24
36
|
/**
|
|
25
37
|
* Compare an operator-supplied plain-string IP against the CompositeIpAddress
|
|
26
38
|
* captured on a session. Returns true iff the parsed IP has the same type
|
|
27
|
-
* (v4/v6) and numeric halves.
|
|
39
|
+
* (v4/v6) and numeric halves, once IPv4-mapped v6 addresses are unmapped.
|
|
28
40
|
*
|
|
29
41
|
* Load-bearing for Web Bot Auth IP binding — a leaked authenticated token
|
|
30
42
|
* replayed from a different IP fails here. Malformed operator IPs degrade
|
|
@@ -34,12 +46,21 @@ var asBigInt = (half) => {
|
|
|
34
46
|
* match would nullify the whole binding.
|
|
35
47
|
*/
|
|
36
48
|
var ipMatchesSession = (operatorIp, sessionIp) => {
|
|
37
|
-
const parsed = getCompositeIpAddress(operatorIp);
|
|
38
|
-
if (parsed.type !== sessionIp.type) return false;
|
|
39
49
|
const lower = asBigInt(sessionIp.lower);
|
|
40
50
|
const upper = asBigInt(sessionIp.upper);
|
|
41
51
|
if (lower === null || upper === null) return false;
|
|
42
|
-
|
|
52
|
+
const parsed = getCompositeIpAddress(operatorIp);
|
|
53
|
+
const operator = unmapV4({
|
|
54
|
+
type: parsed.type,
|
|
55
|
+
lower: BigInt(parsed.lower),
|
|
56
|
+
upper: BigInt(parsed.upper ?? 0n)
|
|
57
|
+
});
|
|
58
|
+
const session = unmapV4({
|
|
59
|
+
type: sessionIp.type,
|
|
60
|
+
lower,
|
|
61
|
+
upper
|
|
62
|
+
});
|
|
63
|
+
return operator.type === session.type && operator.lower === session.lower && operator.upper === session.upper;
|
|
43
64
|
};
|
|
44
65
|
//#endregion
|
|
45
66
|
export { ipMatchesSession };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipMatch.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/ipMatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ipMatch.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/ipMatch.ts"],"names":[],"mappings":"AAcA,OAAO,EAA2B,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAcpE,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAiB,EAAE;IACjD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACnD,IAAI,CAAC;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC,CAAC;AAKF,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAOjC,MAAM,OAAO,GAAG,CAAC,EAAa,EAAa,EAAE,CAC5C,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE;IAC5B,EAAE,CAAC,KAAK,KAAK,EAAE;IACf,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,gBAAgB;IACnC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;IACtE,CAAC,CAAC,EAAE,CAAC;AAcP,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,UAAkB,EAClB,SAA6B,EACnB,EAAE;IACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEnD,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAEhE,OAAO,CACN,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAC9B,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAChC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAChC,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -8,7 +8,14 @@ export interface RenderedPuzzleImages {
|
|
|
8
8
|
renderSeed: string;
|
|
9
9
|
}
|
|
10
10
|
export declare const resolvePuzzleRenderSettings: (...overrides: (IPuzzleSettings | undefined)[]) => PuzzleRenderSettings;
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const resolvePuzzlePieceScaleRange: (...overrides: (IPuzzleSettings | undefined)[]) => {
|
|
12
|
+
min: number;
|
|
13
|
+
max: number;
|
|
14
|
+
};
|
|
15
|
+
export declare const samplePuzzlePieceSize: (range: {
|
|
16
|
+
min: number;
|
|
17
|
+
max: number;
|
|
18
|
+
}) => number;
|
|
12
19
|
export declare const isPuzzleRenderAvailable: () => boolean;
|
|
13
20
|
export declare const renderPuzzleImages: (placement: NotchPlacement, settings?: PuzzleRenderSettings, pieceSize?: number) => Promise<RenderedPuzzleImages>;
|
|
14
21
|
//# sourceMappingURL=puzzleRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puzzleRenderer.d.ts","sourceRoot":"","sources":["../../../src/tasks/puzzle/puzzleRenderer.ts"],"names":[],"mappings":"AAeA,OAAO,EAGN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAGzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,KAAK,eAAe,EAGpB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAQlB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACnB;AAQD,eAAO,MAAM,2BAA2B,iBACzB,CAAC,eAAe,GAAG,SAAS,CAAC,EAAE,KAC3C,oBAmCF,CAAC;
|
|
1
|
+
{"version":3,"file":"puzzleRenderer.d.ts","sourceRoot":"","sources":["../../../src/tasks/puzzle/puzzleRenderer.ts"],"names":[],"mappings":"AAeA,OAAO,EAGN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAGzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,KAAK,eAAe,EAGpB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAQlB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACnB;AAQD,eAAO,MAAM,2BAA2B,iBACzB,CAAC,eAAe,GAAG,SAAS,CAAC,EAAE,KAC3C,oBAmCF,CAAC;AAUF,eAAO,MAAM,4BAA4B,iBAC1B,CAAC,eAAe,GAAG,SAAS,CAAC,EAAE,KAC3C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAY5B,CAAC;AAQF,eAAO,MAAM,qBAAqB,UAAW;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACZ,KAAG,MAGH,CAAC;AAYF,eAAO,MAAM,uBAAuB,QAAO,OAM1C,CAAC;AASF,eAAO,MAAM,kBAAkB,cACnB,cAAc,aACf,oBAAoB,cAClB,MAAM,KAChB,OAAO,CAAC,oBAAoB,CAwB9B,CAAC"}
|
|
@@ -46,13 +46,9 @@ var resolvePuzzleRenderSettings = (...overrides) => {
|
|
|
46
46
|
var pieceSizeSampler = createStratifiedSampler();
|
|
47
47
|
/**
|
|
48
48
|
* Resolve the effective piece scale range from the same layered
|
|
49
|
-
* client-settings / traffic-filter overrides used for render settings
|
|
50
|
-
* draw a per-challenge piece size in pixels. Stratified so the distribution
|
|
51
|
-
* is evenly spread across the range even for short bursts of requests.
|
|
52
|
-
* Rounded to an integer because the pixel buffer is allocated as
|
|
53
|
-
* `size * size * 4`.
|
|
49
|
+
* client-settings / traffic-filter overrides used for render settings.
|
|
54
50
|
*/
|
|
55
|
-
var
|
|
51
|
+
var resolvePuzzlePieceScaleRange = (...overrides) => {
|
|
56
52
|
let min = puzzlePieceScaleMinDefault;
|
|
57
53
|
let max = puzzlePieceScaleMaxDefault;
|
|
58
54
|
for (const override of overrides) {
|
|
@@ -61,7 +57,19 @@ var resolvePuzzlePieceSize = (...overrides) => {
|
|
|
61
57
|
if (override.pieceScale.max !== void 0) max = override.pieceScale.max;
|
|
62
58
|
}
|
|
63
59
|
if (min > max) min = max;
|
|
64
|
-
|
|
60
|
+
return {
|
|
61
|
+
min,
|
|
62
|
+
max
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Draw a per-challenge piece size in pixels from a scale range. Stratified so
|
|
67
|
+
* the distribution is evenly spread across the range even for short bursts of
|
|
68
|
+
* requests. Rounded to an integer because the pixel buffer is allocated as
|
|
69
|
+
* `size * size * 4`.
|
|
70
|
+
*/
|
|
71
|
+
var samplePuzzlePieceSize = (range) => {
|
|
72
|
+
const scale = pieceSizeSampler.sample(range.min, range.max);
|
|
65
73
|
return Math.max(1, Math.round(DEFAULT_GEOMETRY.width * scale));
|
|
66
74
|
};
|
|
67
75
|
/**
|
|
@@ -92,4 +100,4 @@ var renderPuzzleImages = async (placement, settings = DEFAULT_RENDER_SETTINGS, p
|
|
|
92
100
|
};
|
|
93
101
|
};
|
|
94
102
|
//#endregion
|
|
95
|
-
export { isPuzzleRenderAvailable, renderPuzzleImages,
|
|
103
|
+
export { isPuzzleRenderAvailable, renderPuzzleImages, resolvePuzzlePieceScaleRange, resolvePuzzleRenderSettings, samplePuzzlePieceSize };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puzzleRenderer.js","sourceRoot":"","sources":["../../../src/tasks/puzzle/puzzleRenderer.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EAGvB,YAAY,EACZ,SAAS,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEN,0BAA0B,EAC1B,0BAA0B,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACN,yBAAyB,EACzB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAuBjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,GAAG,SAA0C,EACtB,EAAE;IACzB,IAAI,QAAQ,GAAyB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IACpE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACvC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC9C,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC3E,CAAC;QACD,IAAI,QAAQ,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAChD,QAAQ,GAAG;gBACV,GAAG,QAAQ;gBACX,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;aACjD,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACvC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC5C,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC;QACvE,CAAC;IACF,CAAC;IAQD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,4BAA4B,CAAC;IACjE,IAAI,QAAQ,CAAC,eAAe,GAAG,KAAK,EAAE,CAAC;QACtC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAIF,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"puzzleRenderer.js","sourceRoot":"","sources":["../../../src/tasks/puzzle/puzzleRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,10 +158,10 @@ describe("Web Bot Auth authenticated flow (integration)", () => {
|
|
|
158
158
|
await accessRulesStorage.deleteAllRules();
|
|
159
159
|
getVerdictCache().clear();
|
|
160
160
|
});
|
|
161
|
-
const registerSite = async () => {
|
|
161
|
+
const registerSite = async (captchaType = CaptchaType.frictionless) => {
|
|
162
162
|
const [mnemonic, siteKey] = await generateMnemonic();
|
|
163
163
|
await tasks.clientTaskManager.registerSiteKey(siteKey, Tier.Professional, ClientSettingsSchema.parse({
|
|
164
|
-
captchaType
|
|
164
|
+
captchaType,
|
|
165
165
|
domains: ["localhost", "example.com"],
|
|
166
166
|
}));
|
|
167
167
|
return [mnemonic, siteKey];
|
|
@@ -182,7 +182,7 @@ describe("Web Bot Auth authenticated flow (integration)", () => {
|
|
|
182
182
|
const frictionless = async (siteKey, options) => {
|
|
183
183
|
const body = {
|
|
184
184
|
[ApiParams.dapp]: siteKey,
|
|
185
|
-
[ApiParams.token]: randomAsHex(16),
|
|
185
|
+
[ApiParams.token]: options.token ?? randomAsHex(16),
|
|
186
186
|
[ApiParams.user]: options.userId,
|
|
187
187
|
[ApiParams.headHash]: randomAsHex(16),
|
|
188
188
|
...(options.clientSessionId && {
|
|
@@ -242,17 +242,18 @@ describe("Web Bot Auth authenticated flow (integration)", () => {
|
|
|
242
242
|
expect(response.status).toBe(200);
|
|
243
243
|
return (await response.json());
|
|
244
244
|
};
|
|
245
|
-
const
|
|
245
|
+
const insertRule = async (type, siteKey, fields) => {
|
|
246
246
|
await accessRulesStorage.insertRules([
|
|
247
247
|
{
|
|
248
248
|
rule: accessRuleInput.parse({
|
|
249
|
-
type
|
|
249
|
+
type,
|
|
250
250
|
clientId: siteKey,
|
|
251
251
|
...fields,
|
|
252
252
|
}),
|
|
253
253
|
},
|
|
254
254
|
]);
|
|
255
255
|
};
|
|
256
|
+
const allowRule = (siteKey, fields) => insertRule(AccessPolicyType.Allow, siteKey, fields);
|
|
256
257
|
describe("frictionless entry", () => {
|
|
257
258
|
it("mints an authenticated session for a request a verified Web Bot Auth signer is allowed on", async () => {
|
|
258
259
|
const [, siteKey] = await registerSite();
|
|
@@ -351,6 +352,73 @@ describe("Web Bot Auth authenticated flow (integration)", () => {
|
|
|
351
352
|
expect(status).toBe(200);
|
|
352
353
|
expect(body.captchaType).not.toBe(CaptchaType.authenticated);
|
|
353
354
|
});
|
|
355
|
+
it("lets an allowed signer through on a site configured for a fixed captcha type", async () => {
|
|
356
|
+
const [, siteKey] = await registerSite(CaptchaType.pow);
|
|
357
|
+
const [, userId] = await generateMnemonic();
|
|
358
|
+
await allowRule(siteKey, { webBotAuthAgent: signerUrl });
|
|
359
|
+
const signed = await frictionless(siteKey, {
|
|
360
|
+
userId,
|
|
361
|
+
ip: "203.0.113.14",
|
|
362
|
+
userAgent: "IntegrationAgent/1.0",
|
|
363
|
+
extraHeaders: signedHeaders(),
|
|
364
|
+
});
|
|
365
|
+
expect(signed.body.captchaType).toBe(CaptchaType.authenticated);
|
|
366
|
+
const [, otherUserId] = await generateMnemonic();
|
|
367
|
+
const unsigned = await frictionless(siteKey, {
|
|
368
|
+
userId: otherUserId,
|
|
369
|
+
ip: "203.0.113.15",
|
|
370
|
+
userAgent: "IntegrationAgent/1.0",
|
|
371
|
+
});
|
|
372
|
+
expect(unsigned.body.captchaType).toBe(CaptchaType.pow);
|
|
373
|
+
});
|
|
374
|
+
it("blocks a signer with a Block rule on a site configured for a fixed captcha type", async () => {
|
|
375
|
+
const [, siteKey] = await registerSite(CaptchaType.pow);
|
|
376
|
+
const [, userId] = await generateMnemonic();
|
|
377
|
+
await allowRule(siteKey, { webBotAuthAgent: signerUrl });
|
|
378
|
+
await insertRule(AccessPolicyType.Block, siteKey, {
|
|
379
|
+
webBotAuthAgent: signerUrl,
|
|
380
|
+
});
|
|
381
|
+
const { status, body } = await frictionless(siteKey, {
|
|
382
|
+
userId,
|
|
383
|
+
ip: "203.0.113.16",
|
|
384
|
+
userAgent: "IntegrationAgent/1.0",
|
|
385
|
+
extraHeaders: signedHeaders(),
|
|
386
|
+
});
|
|
387
|
+
expect(status).toBe(401);
|
|
388
|
+
expect(body.captchaType).toBeUndefined();
|
|
389
|
+
});
|
|
390
|
+
it("mints an authenticated session when the client sent no detector token", async () => {
|
|
391
|
+
const [, siteKey] = await registerSite();
|
|
392
|
+
const [, userId] = await generateMnemonic();
|
|
393
|
+
await allowRule(siteKey, { webBotAuthAgent: signerUrl });
|
|
394
|
+
const { status, body } = await frictionless(siteKey, {
|
|
395
|
+
userId,
|
|
396
|
+
ip: "203.0.113.17",
|
|
397
|
+
userAgent: "IntegrationAgent/1.0",
|
|
398
|
+
extraHeaders: signedHeaders(),
|
|
399
|
+
token: "",
|
|
400
|
+
});
|
|
401
|
+
expect(status).toBe(200);
|
|
402
|
+
expect(body.captchaType).toBe(CaptchaType.authenticated);
|
|
403
|
+
});
|
|
404
|
+
it("swaps a returning agent's challenge session for an authenticated one once it signs", async () => {
|
|
405
|
+
const [, siteKey] = await registerSite();
|
|
406
|
+
const [, userId] = await generateMnemonic();
|
|
407
|
+
await allowRule(siteKey, { webBotAuthAgent: signerUrl });
|
|
408
|
+
const visit = {
|
|
409
|
+
userId,
|
|
410
|
+
ip: "203.0.113.18",
|
|
411
|
+
userAgent: "IntegrationAgent/1.0",
|
|
412
|
+
};
|
|
413
|
+
const unsigned = await frictionless(siteKey, visit);
|
|
414
|
+
expect(unsigned.body.captchaType).not.toBe(CaptchaType.authenticated);
|
|
415
|
+
const signed = await frictionless(siteKey, {
|
|
416
|
+
...visit,
|
|
417
|
+
extraHeaders: signedHeaders(),
|
|
418
|
+
});
|
|
419
|
+
expect(signed.body.captchaType).toBe(CaptchaType.authenticated);
|
|
420
|
+
expect(signed.body.sessionId).not.toBe(unsigned.body.sessionId);
|
|
421
|
+
});
|
|
354
422
|
it("does not mint an authenticated session when no Allow rule matches", async () => {
|
|
355
423
|
const [, siteKey] = await registerSite();
|
|
356
424
|
const [, userId] = await generateMnemonic();
|
|
@@ -424,6 +492,36 @@ describe("Web Bot Auth authenticated flow (integration)", () => {
|
|
|
424
492
|
const result = await authenticatedVerify(siteKey, siteKeyMnemonic, userId, sessionId, { ip: AGENT_IP, clientSessionId: "render-session-a" });
|
|
425
493
|
expect(result).toEqual({ verified: true, status: "API.USER_VERIFIED" });
|
|
426
494
|
});
|
|
495
|
+
it("gives a returning agent a new session rather than the one it spent", async () => {
|
|
496
|
+
const { siteKey, siteKeyMnemonic, userId, sessionId } = await mintSession();
|
|
497
|
+
const first = await authenticatedVerify(siteKey, siteKeyMnemonic, userId, sessionId, { ip: AGENT_IP });
|
|
498
|
+
expect(first.verified).toBe(true);
|
|
499
|
+
const userAgent = `TrustedPartnerAgent/${randomAsHex(4)}`;
|
|
500
|
+
await allowRule(siteKey, { userAgent });
|
|
501
|
+
const { body } = await frictionless(siteKey, {
|
|
502
|
+
userId,
|
|
503
|
+
ip: AGENT_IP,
|
|
504
|
+
userAgent,
|
|
505
|
+
});
|
|
506
|
+
expect(body.captchaType).toBe(CaptchaType.authenticated);
|
|
507
|
+
expect(body.sessionId).not.toBe(sessionId);
|
|
508
|
+
const second = await authenticatedVerify(siteKey, siteKeyMnemonic, userId, body.sessionId, { ip: AGENT_IP });
|
|
509
|
+
expect(second).toEqual({ verified: true, status: "API.USER_VERIFIED" });
|
|
510
|
+
});
|
|
511
|
+
it("verifies a plain IPv4 against a session that captured it IPv4-mapped", async () => {
|
|
512
|
+
const [siteKeyMnemonic, siteKey] = await registerSite();
|
|
513
|
+
const [, userId] = await generateMnemonic();
|
|
514
|
+
const userAgent = `TrustedPartnerAgent/${randomAsHex(4)}`;
|
|
515
|
+
await allowRule(siteKey, { userAgent });
|
|
516
|
+
const { body } = await frictionless(siteKey, {
|
|
517
|
+
userId,
|
|
518
|
+
ip: "::ffff:203.0.113.21",
|
|
519
|
+
userAgent,
|
|
520
|
+
});
|
|
521
|
+
expect(body.captchaType).toBe(CaptchaType.authenticated);
|
|
522
|
+
const result = await authenticatedVerify(siteKey, siteKeyMnemonic, userId, body.sessionId, { ip: "203.0.113.21" });
|
|
523
|
+
expect(result).toEqual({ verified: true, status: "API.USER_VERIFIED" });
|
|
524
|
+
});
|
|
427
525
|
it("refuses a session that was not minted as authenticated", async () => {
|
|
428
526
|
const [siteKeyMnemonic, siteKey] = await registerSite();
|
|
429
527
|
const [, userId] = await generateMnemonic();
|