@prosopo/provider 4.14.4 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +10 -9
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +11 -10
  4. package/CHANGELOG.md +66 -0
  5. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -1
  6. package/dist/api/blacklistRequestInspector.d.ts +8 -3
  7. package/dist/api/blacklistRequestInspector.d.ts.map +1 -1
  8. package/dist/api/blacklistRequestInspector.js +49 -11
  9. package/dist/api/blacklistRequestInspector.js.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +19 -13
  12. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  13. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +2 -0
  14. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
  15. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +7 -1
  16. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
  17. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +4 -1
  18. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  19. package/dist/api/captcha/submitPoWCaptchaSolution.js +12 -7
  20. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  21. package/dist/api/handshakeTimingMiddleware.d.ts +2 -2
  22. package/dist/api/handshakeTimingMiddleware.js +11 -11
  23. package/dist/api/hardBlockVerdictCache.d.ts +18 -0
  24. package/dist/api/hardBlockVerdictCache.d.ts.map +1 -0
  25. package/dist/api/hardBlockVerdictCache.js +119 -0
  26. package/dist/api/hardBlockVerdictCache.js.map +1 -0
  27. package/dist/cjs/api/blacklistRequestInspector.cjs +49 -11
  28. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +19 -13
  29. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +7 -1
  30. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +12 -7
  31. package/dist/cjs/api/handshakeTimingMiddleware.cjs +11 -11
  32. package/dist/cjs/api/hardBlockVerdictCache.cjs +119 -0
  33. package/dist/cjs/index.cjs +1 -0
  34. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +9 -9
  35. package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +6 -9
  36. package/dist/index.js +2 -1
  37. package/dist/tasks/captchaManager.d.ts +1 -0
  38. package/dist/tasks/captchaManager.d.ts.map +1 -1
  39. package/dist/tasks/captchaManager.js.map +1 -1
  40. package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -1
  41. package/dist/tasks/frictionless/frictionlessTasks.js +9 -9
  42. package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
  43. package/dist/tasks/spam/checkTrafficFilter.js +6 -9
  44. package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
  45. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +2 -1
  46. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -1
  47. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.d.ts +2 -0
  48. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.d.ts.map +1 -0
  49. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.js +295 -0
  50. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.js.map +1 -0
  51. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +8 -2
  52. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -1
  53. package/dist/tests/unit/api/handshakeTimingMiddleware.unit.test.js +22 -22
  54. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.d.ts +2 -0
  55. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.d.ts.map +1 -0
  56. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js +192 -0
  57. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js.map +1 -0
  58. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +2 -0
  59. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
  60. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js +73 -1
  61. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js.map +1 -1
  62. package/package.json +13 -13
@@ -87,11 +87,11 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
87
87
  userAgent,
88
88
  ...req.ja4 && { ja4: req.ja4 },
89
89
  ...fingerprintProof && { fingerprintProof },
90
- ...req.tcpToChelloMs !== void 0 && {
91
- tcpToChelloMs: req.tcpToChelloMs
90
+ ...req.tcpToChelloUs !== void 0 && {
91
+ tcpToChelloUs: req.tcpToChelloUs
92
92
  },
93
- ...req.chelloToHandshakeMs !== void 0 && {
94
- chelloToHandshakeMs: req.chelloToHandshakeMs
93
+ ...req.chelloToHandshakeUs !== void 0 && {
94
+ chelloToHandshakeUs: req.chelloToHandshakeUs
95
95
  }
96
96
  }
97
97
  });
@@ -120,7 +120,10 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
120
120
  }
121
121
  }));
122
122
  }
123
- const escalation = await buildEscalation(tasks$1, result, challenge);
123
+ const escalation = await buildEscalation(tasks$1, result, challenge, {
124
+ tcpToChelloUs: req.tcpToChelloUs,
125
+ chelloToHandshakeUs: req.chelloToHandshakeUs
126
+ });
124
127
  const response = {
125
128
  status: "ok",
126
129
  // On escalation the user is not done — they still need to clear
@@ -148,7 +151,7 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
148
151
  );
149
152
  }
150
153
  };
151
- const buildEscalation = async (tasks2, result, challenge) => {
154
+ const buildEscalation = async (tasks2, result, challenge, handshakeTiming) => {
152
155
  if (!result.verified || !result.routingOutput) return void 0;
153
156
  const routedType = result.routingOutput.captchaType;
154
157
  if (routedType !== types.CaptchaType.image && routedType !== types.CaptchaType.puzzle) {
@@ -187,7 +190,9 @@ const buildEscalation = async (tasks2, result, challenge) => {
187
190
  originSession.entropyCryptoFingerprint,
188
191
  originSession.entropyWallClockOffsetMs,
189
192
  originSession.entropyMathRandomFirst,
190
- originSession.currentUrl
193
+ originSession.currentUrl,
194
+ handshakeTiming?.tcpToChelloUs,
195
+ handshakeTiming?.chelloToHandshakeUs
191
196
  );
192
197
  if (tasks2.writeQueue) {
193
198
  await tasks2.writeQueue.cacheSessionEscalation(
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const apiExpressRouter = require("@prosopo/api-express-router");
4
4
  const logger = require("@prosopo/logger");
5
- const HEADER_TCP_TO_CHELLO = "x-tls-tcp-to-chello-ms";
6
- const HEADER_CHELLO_TO_HANDSHAKE = "x-tls-chello-to-handshake-ms";
5
+ const HEADER_TCP_TO_CHELLO = "x-tls-tcp-to-chello-us";
6
+ const HEADER_CHELLO_TO_HANDSHAKE = "x-tls-chello-to-handshake-us";
7
7
  const parseTimingHeader = (raw, logger2, headerName) => {
8
8
  if (raw === void 0) {
9
9
  return void 0;
@@ -25,12 +25,12 @@ const parseTimingHeader = (raw, logger2, headerName) => {
25
25
  const getHandshakeTiming = (headers, logger$1) => {
26
26
  const log = logger$1 ?? logger.getLogger("info", "provider:handshake-timing");
27
27
  return {
28
- tcpToChelloMs: parseTimingHeader(
28
+ tcpToChelloUs: parseTimingHeader(
29
29
  headers[HEADER_TCP_TO_CHELLO],
30
30
  log,
31
31
  HEADER_TCP_TO_CHELLO
32
32
  ),
33
- chelloToHandshakeMs: parseTimingHeader(
33
+ chelloToHandshakeUs: parseTimingHeader(
34
34
  headers[HEADER_CHELLO_TO_HANDSHAKE],
35
35
  log,
36
36
  HEADER_CHELLO_TO_HANDSHAKE
@@ -41,17 +41,17 @@ const handshakeTimingMiddleware = (env) => {
41
41
  return async (req, res, next) => {
42
42
  try {
43
43
  const timing = getHandshakeTiming(req.headers, req.logger);
44
- if (timing.tcpToChelloMs !== void 0) {
45
- req.tcpToChelloMs = timing.tcpToChelloMs;
44
+ if (timing.tcpToChelloUs !== void 0) {
45
+ req.tcpToChelloUs = timing.tcpToChelloUs;
46
46
  }
47
- if (timing.chelloToHandshakeMs !== void 0) {
48
- req.chelloToHandshakeMs = timing.chelloToHandshakeMs;
47
+ if (timing.chelloToHandshakeUs !== void 0) {
48
+ req.chelloToHandshakeUs = timing.chelloToHandshakeUs;
49
49
  }
50
- if (timing.tcpToChelloMs !== void 0 || timing.chelloToHandshakeMs !== void 0) {
50
+ if (timing.tcpToChelloUs !== void 0 || timing.chelloToHandshakeUs !== void 0) {
51
51
  req.logger = req.logger.with(
52
52
  {
53
- tcpToChelloMs: timing.tcpToChelloMs,
54
- chelloToHandshakeMs: timing.chelloToHandshakeMs
53
+ tcpToChelloUs: timing.tcpToChelloUs,
54
+ chelloToHandshakeUs: timing.chelloToHandshakeUs
55
55
  },
56
56
  "handshakeTiming"
57
57
  );
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const DEFAULT_VERDICT_CACHE_TTL_MS = 1e4;
4
+ const DEFAULT_VERDICT_CACHE_MAX_ENTRIES = 5e4;
5
+ class HardBlockVerdictCache {
6
+ constructor(ttlMs = DEFAULT_VERDICT_CACHE_TTL_MS, maxEntries = DEFAULT_VERDICT_CACHE_MAX_ENTRIES) {
7
+ this.ttlMs = ttlMs;
8
+ this.maxEntries = maxEntries;
9
+ this.store = /* @__PURE__ */ new Map();
10
+ this.inflight = /* @__PURE__ */ new Map();
11
+ }
12
+ get(key) {
13
+ const entry = this.store.get(key);
14
+ if (entry === void 0) {
15
+ return void 0;
16
+ }
17
+ if (entry.expiresAt <= Date.now()) {
18
+ this.store.delete(key);
19
+ return void 0;
20
+ }
21
+ this.store.delete(key);
22
+ this.store.set(key, entry);
23
+ return entry.value;
24
+ }
25
+ set(key, value) {
26
+ this.store.delete(key);
27
+ if (this.store.size >= this.maxEntries) {
28
+ const oldest = this.store.keys().next().value;
29
+ if (oldest !== void 0) {
30
+ this.store.delete(oldest);
31
+ }
32
+ }
33
+ this.store.set(key, {
34
+ value,
35
+ expiresAt: Date.now() + this.ttlMs
36
+ });
37
+ }
38
+ /**
39
+ * Cache lookup with singleflight dedupe of concurrent misses.
40
+ *
41
+ * Fast path: cache hit → return immediately (with LRU move-to-tail
42
+ * via `get()`).
43
+ *
44
+ * Slow path: cache miss →
45
+ * 1. If an in-flight Promise exists for this key, join it. This
46
+ * is the coalescing behaviour — N concurrent identical misses
47
+ * all await the same underlying storage call.
48
+ * 2. Otherwise, invoke `compute()`, register the Promise, and
49
+ * populate the cache with the result on resolve. The Promise
50
+ * is removed from the in-flight map in a `finally` so a
51
+ * rejection doesn't wedge future callers.
52
+ *
53
+ * Rejection semantics: if `compute()` throws, all joined waiters
54
+ * see the same rejection. Callers should handle it — the underlying
55
+ * `getPrioritisedAccessRule` catches its own storage errors and
56
+ * returns `[]` (fail-open), so in practice this never propagates.
57
+ */
58
+ async getOrCompute(key, compute) {
59
+ const cached = this.get(key);
60
+ if (cached !== void 0) {
61
+ return cached;
62
+ }
63
+ const existing = this.inflight.get(key);
64
+ if (existing !== void 0) {
65
+ return existing;
66
+ }
67
+ const promise = (async () => {
68
+ const value = await compute();
69
+ this.set(key, value);
70
+ return value;
71
+ })();
72
+ this.inflight.set(key, promise);
73
+ try {
74
+ return await promise;
75
+ } finally {
76
+ if (this.inflight.get(key) === promise) {
77
+ this.inflight.delete(key);
78
+ }
79
+ }
80
+ }
81
+ // Test/ops hook — the running cache is not exposed on the wire, but
82
+ // admin tooling (e.g. a rule-mutation notifier) may need to flush
83
+ // after a bulk insert to bound the staleness window. Clears both
84
+ // the stored entries and any in-flight Promises so a rule mutation
85
+ // can't leave a stale computation in flight.
86
+ clear() {
87
+ this.store.clear();
88
+ this.inflight.clear();
89
+ }
90
+ size() {
91
+ return this.store.size;
92
+ }
93
+ // Test hook: number of in-flight computations. Not on the hot path.
94
+ inflightSize() {
95
+ return this.inflight.size;
96
+ }
97
+ }
98
+ const hardBlockCacheKey = (clientId, userScope, blockOnly) => {
99
+ const bo = blockOnly ? "1" : "0";
100
+ const parts = [
101
+ clientId ?? "",
102
+ userScope.numericIp === void 0 ? "" : userScope.numericIp.toString(),
103
+ userScope.numericIpMaskMin === void 0 ? "" : userScope.numericIpMaskMin.toString(),
104
+ userScope.numericIpMaskMax === void 0 ? "" : userScope.numericIpMaskMax.toString(),
105
+ userScope.userId ?? "",
106
+ userScope.ja4Hash ?? "",
107
+ userScope.headersHash ?? "",
108
+ userScope.userAgentHash ?? "",
109
+ userScope.headHash ?? "",
110
+ userScope.coords ?? "",
111
+ userScope.countryCode ?? "",
112
+ userScope.asn === void 0 ? "" : String(userScope.asn)
113
+ ];
114
+ return `${bo}|${parts.join("|")}`;
115
+ };
116
+ exports.DEFAULT_VERDICT_CACHE_MAX_ENTRIES = DEFAULT_VERDICT_CACHE_MAX_ENTRIES;
117
+ exports.DEFAULT_VERDICT_CACHE_TTL_MS = DEFAULT_VERDICT_CACHE_TTL_MS;
118
+ exports.HardBlockVerdictCache = HardBlockVerdictCache;
119
+ exports.hardBlockCacheKey = hardBlockCacheKey;
@@ -63,6 +63,7 @@ exports.compareIPs = ipComparison.compareIPs;
63
63
  exports.BlacklistRequestInspector = blacklistRequestInspector.BlacklistRequestInspector;
64
64
  exports.getPrioritisedAccessRule = blacklistRequestInspector.getPrioritisedAccessRule;
65
65
  exports.getRequestUserScope = blacklistRequestInspector.getRequestUserScope;
66
+ exports.getVerdictCache = blacklistRequestInspector.getVerdictCache;
66
67
  exports.rankCandidateRules = blacklistRequestInspector.rankCandidateRules;
67
68
  Object.defineProperty(exports, "FrictionlessReason", {
68
69
  enumerable: true,
@@ -73,8 +73,8 @@ class FrictionlessManager extends captchaManager.CaptchaManager {
73
73
  entropyCryptoFingerprint: params.entropyCryptoFingerprint,
74
74
  entropyWallClockOffsetMs: params.entropyWallClockOffsetMs,
75
75
  entropyMathRandomFirst: params.entropyMathRandomFirst,
76
- tcpToChelloMs: params.tcpToChelloMs,
77
- chelloToHandshakeMs: params.chelloToHandshakeMs
76
+ tcpToChelloUs: params.tcpToChelloUs,
77
+ chelloToHandshakeUs: params.chelloToHandshakeUs
78
78
  };
79
79
  }
80
80
  updateScore(score, scoreComponents) {
@@ -86,7 +86,7 @@ class FrictionlessManager extends captchaManager.CaptchaManager {
86
86
  checkLangRules(acceptLanguage) {
87
87
  return lang.checkLangRules(this.config, acceptLanguage);
88
88
  }
89
- async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, currentUrl, tcpToChelloMs, chelloToHandshakeMs) {
89
+ async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, currentUrl, tcpToChelloUs, chelloToHandshakeUs) {
90
90
  const sessionRecord = {
91
91
  sessionId: `${getSessionIDPrefix(this.config.host)}-${uuid.v4()}`,
92
92
  createdAt: /* @__PURE__ */ new Date(),
@@ -120,8 +120,8 @@ class FrictionlessManager extends captchaManager.CaptchaManager {
120
120
  entropyCryptoFingerprint,
121
121
  entropyWallClockOffsetMs,
122
122
  entropyMathRandomFirst,
123
- tcpToChelloMs,
124
- chelloToHandshakeMs
123
+ tcpToChelloUs,
124
+ chelloToHandshakeUs
125
125
  };
126
126
  await this.db.storeSessionRecord(sessionRecord);
127
127
  if (this.writeQueue) {
@@ -203,8 +203,8 @@ class FrictionlessManager extends captchaManager.CaptchaManager {
203
203
  effectiveParams.entropyWallClockOffsetMs,
204
204
  effectiveParams.entropyMathRandomFirst,
205
205
  effectiveParams.currentUrl,
206
- effectiveParams.tcpToChelloMs,
207
- effectiveParams.chelloToHandshakeMs
206
+ effectiveParams.tcpToChelloUs,
207
+ effectiveParams.chelloToHandshakeUs
208
208
  );
209
209
  if (this.routingContext && this.usageCounters) {
210
210
  this.usageCounters.incrManyAsync(
@@ -257,8 +257,8 @@ class FrictionlessManager extends captchaManager.CaptchaManager {
257
257
  effectiveParams.entropyWallClockOffsetMs,
258
258
  effectiveParams.entropyMathRandomFirst,
259
259
  effectiveParams.currentUrl,
260
- effectiveParams.tcpToChelloMs,
261
- effectiveParams.chelloToHandshakeMs
260
+ effectiveParams.tcpToChelloUs,
261
+ effectiveParams.chelloToHandshakeUs
262
262
  );
263
263
  }
264
264
  scoreIncreaseAccessPolicy(accessPolicy, baseBotScore, botScore, scoreComponents) {
@@ -23,7 +23,7 @@ const isDatacenterAllowlisted = (ipInfo, allowlist) => {
23
23
  );
24
24
  return candidates.some((c) => normalisedAllowlist.includes(c));
25
25
  };
26
- const evaluateIpInfo = (ipInfo, trafficFilter, options) => {
26
+ const evaluateIpInfo = (ipInfo, trafficFilter, isDnsExtra = false) => {
27
27
  if (!ipInfo || !ipInfo.isValid) {
28
28
  return { isBlocked: false };
29
29
  }
@@ -46,7 +46,8 @@ const evaluateIpInfo = (ipInfo, trafficFilter, options) => {
46
46
  return { isBlocked: true, reason: types.ResultReason.ABUSER_BLOCKED };
47
47
  }
48
48
  }
49
- if (trafficFilter.blockDatacenter && ipInfo.isDatacenter && ipInfo.providerType !== "isp" && !(options.suppressVpnDatacenterInteraction && ipInfo.isVPN && !trafficFilter.blockVpn) && !isDatacenterAllowlisted(ipInfo, trafficFilter.datacenterNameAllowlist)) {
49
+ const datacenterSuppressedByCategory = ipInfo.isVPN && !trafficFilter.blockVpn || ipInfo.isProxy && !trafficFilter.blockProxy || ipInfo.isTor && !trafficFilter.blockTor || ipInfo.isCrawler && !trafficFilter.blockCrawler;
50
+ if (trafficFilter.blockDatacenter && ipInfo.isDatacenter && ipInfo.providerType !== "isp" && !datacenterSuppressedByCategory && !isDatacenterAllowlisted(ipInfo, trafficFilter.datacenterNameAllowlist)) {
50
51
  return { isBlocked: true, reason: types.ResultReason.DATACENTER_BLOCKED };
51
52
  }
52
53
  if (trafficFilter.blockMobile && ipInfo.isMobile) {
@@ -55,15 +56,13 @@ const evaluateIpInfo = (ipInfo, trafficFilter, options) => {
55
56
  if (trafficFilter.blockSatellite && ipInfo.isSatellite) {
56
57
  return { isBlocked: true, reason: types.ResultReason.SATELLITE_BLOCKED };
57
58
  }
58
- if (trafficFilter.blockCrawler && ipInfo.isCrawler) {
59
+ if (!isDnsExtra && trafficFilter.blockCrawler && ipInfo.isCrawler) {
59
60
  return { isBlocked: true, reason: types.ResultReason.CRAWLER_BLOCKED };
60
61
  }
61
62
  return { isBlocked: false };
62
63
  };
63
64
  const checkTrafficFilter = (ipInfo, trafficFilter, extraIpInfos, dnsPathValid) => {
64
- const primary = evaluateIpInfo(ipInfo, trafficFilter, {
65
- suppressVpnDatacenterInteraction: true
66
- });
65
+ const primary = evaluateIpInfo(ipInfo, trafficFilter);
67
66
  if (primary.isBlocked) {
68
67
  return primary;
69
68
  }
@@ -71,9 +70,7 @@ const checkTrafficFilter = (ipInfo, trafficFilter, extraIpInfos, dnsPathValid) =
71
70
  return { isBlocked: false };
72
71
  }
73
72
  for (const extra of extraIpInfos ?? []) {
74
- const result = evaluateIpInfo(extra, trafficFilter, {
75
- suppressVpnDatacenterInteraction: false
76
- });
73
+ const result = evaluateIpInfo(extra, trafficFilter, true);
77
74
  if (result.isBlocked) {
78
75
  return result;
79
76
  }
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ import { ignoreMiddleware } from "./api/ignoreMiddleware.js";
19
19
  import { robotsMiddleware } from "./api/robotsMiddleware.js";
20
20
  import { getCompositeIpAddress, getIpAddressFromComposite } from "./compositeIpAddress.js";
21
21
  import { compareIPs } from "./services/ipComparison.js";
22
- import { BlacklistRequestInspector, getPrioritisedAccessRule, getRequestUserScope, rankCandidateRules } from "./api/blacklistRequestInspector.js";
22
+ import { BlacklistRequestInspector, getPrioritisedAccessRule, getRequestUserScope, getVerdictCache, rankCandidateRules } from "./api/blacklistRequestInspector.js";
23
23
  import "./tasks/frictionless/frictionlessTasks.js";
24
24
  import { FrictionlessReason } from "@prosopo/types";
25
25
  import { Tasks } from "./tasks/tasks.js";
@@ -48,6 +48,7 @@ export {
48
48
  getPrioritisedAccessRule,
49
49
  getRequestUserScope,
50
50
  getUserFromJWT,
51
+ getVerdictCache,
51
52
  handshakeTimingMiddleware,
52
53
  headerCheckMiddleware,
53
54
  ignoreMiddleware,
@@ -42,6 +42,7 @@ export declare class CaptchaManager {
42
42
  };
43
43
  getPrioritisedAccessPolicies(userAccessRulesStorage: AccessRulesStorage, clientId: string, userScope: UserScope | UserScopeRecord, options?: {
44
44
  blockOnly?: boolean;
45
+ requestMemoHost?: object;
45
46
  }): Promise<import("@prosopo/user-access-policy").AccessRule[]>;
46
47
  getDetectorKeys(): Promise<string[]>;
47
48
  decryptSimdReadings(encryptedData: string, decryptKeys: (string | undefined)[]): Promise<SimdReadingsResult | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"captchaManager.js","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captchaManager.js","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export declare class FrictionlessManager extends CaptchaManager {
24
24
  setSessionParams(params: Omit<Session, "sessionId" | "createdAt" | "captchaType">): void;
25
25
  updateScore(score: number, scoreComponents: ScoreComponents): void;
26
26
  checkLangRules(acceptLanguage: string): number;
27
- createSession(token: string, score: number, threshold: number, scoreComponents: ScoreComponents, ipAddress: CompositeIpAddress, captchaType: CaptchaType, siteKey: string, solvedImagesCount?: number, powDifficulty?: number, userSitekeyIpHash?: string, webView?: boolean, iFrame?: boolean, decryptedHeadHash?: string, reason?: FrictionlessReason, blocked?: boolean, deleted?: boolean, ipInfo?: IPInfoResponse, headers?: RequestHeaders, mode?: ModeEnum, simdReadings?: Session["simdReadings"], entropyMathRandomFingerprint?: Session["entropyMathRandomFingerprint"], entropyCryptoFingerprint?: Session["entropyCryptoFingerprint"], entropyWallClockOffsetMs?: Session["entropyWallClockOffsetMs"], entropyMathRandomFirst?: Session["entropyMathRandomFirst"], currentUrl?: Session["currentUrl"], tcpToChelloMs?: Session["tcpToChelloMs"], chelloToHandshakeMs?: Session["chelloToHandshakeMs"]): Promise<Session>;
27
+ createSession(token: string, score: number, threshold: number, scoreComponents: ScoreComponents, ipAddress: CompositeIpAddress, captchaType: CaptchaType, siteKey: string, solvedImagesCount?: number, powDifficulty?: number, userSitekeyIpHash?: string, webView?: boolean, iFrame?: boolean, decryptedHeadHash?: string, reason?: FrictionlessReason, blocked?: boolean, deleted?: boolean, ipInfo?: IPInfoResponse, headers?: RequestHeaders, mode?: ModeEnum, simdReadings?: Session["simdReadings"], entropyMathRandomFingerprint?: Session["entropyMathRandomFingerprint"], entropyCryptoFingerprint?: Session["entropyCryptoFingerprint"], entropyWallClockOffsetMs?: Session["entropyWallClockOffsetMs"], entropyMathRandomFirst?: Session["entropyMathRandomFirst"], currentUrl?: Session["currentUrl"], tcpToChelloUs?: Session["tcpToChelloUs"], chelloToHandshakeUs?: Session["chelloToHandshakeUs"]): Promise<Session>;
28
28
  sendImageCaptcha(params?: Partial<ImageCaptchaSessionParams>): Promise<GetFrictionlessCaptchaResponse>;
29
29
  sendPowCaptcha(params?: Partial<PowCaptchaSessionParams>): Promise<GetFrictionlessCaptchaResponse>;
30
30
  sendPuzzleCaptcha(params?: Partial<PuzzleCaptchaSessionParams>): Promise<GetFrictionlessCaptchaResponse>;
@@ -72,8 +72,8 @@ class FrictionlessManager extends CaptchaManager {
72
72
  entropyCryptoFingerprint: params.entropyCryptoFingerprint,
73
73
  entropyWallClockOffsetMs: params.entropyWallClockOffsetMs,
74
74
  entropyMathRandomFirst: params.entropyMathRandomFirst,
75
- tcpToChelloMs: params.tcpToChelloMs,
76
- chelloToHandshakeMs: params.chelloToHandshakeMs
75
+ tcpToChelloUs: params.tcpToChelloUs,
76
+ chelloToHandshakeUs: params.chelloToHandshakeUs
77
77
  };
78
78
  }
79
79
  updateScore(score, scoreComponents) {
@@ -85,7 +85,7 @@ class FrictionlessManager extends CaptchaManager {
85
85
  checkLangRules(acceptLanguage) {
86
86
  return checkLangRules(this.config, acceptLanguage);
87
87
  }
88
- async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, currentUrl, tcpToChelloMs, chelloToHandshakeMs) {
88
+ async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, currentUrl, tcpToChelloUs, chelloToHandshakeUs) {
89
89
  const sessionRecord = {
90
90
  sessionId: `${getSessionIDPrefix(this.config.host)}-${v4()}`,
91
91
  createdAt: /* @__PURE__ */ new Date(),
@@ -119,8 +119,8 @@ class FrictionlessManager extends CaptchaManager {
119
119
  entropyCryptoFingerprint,
120
120
  entropyWallClockOffsetMs,
121
121
  entropyMathRandomFirst,
122
- tcpToChelloMs,
123
- chelloToHandshakeMs
122
+ tcpToChelloUs,
123
+ chelloToHandshakeUs
124
124
  };
125
125
  await this.db.storeSessionRecord(sessionRecord);
126
126
  if (this.writeQueue) {
@@ -202,8 +202,8 @@ class FrictionlessManager extends CaptchaManager {
202
202
  effectiveParams.entropyWallClockOffsetMs,
203
203
  effectiveParams.entropyMathRandomFirst,
204
204
  effectiveParams.currentUrl,
205
- effectiveParams.tcpToChelloMs,
206
- effectiveParams.chelloToHandshakeMs
205
+ effectiveParams.tcpToChelloUs,
206
+ effectiveParams.chelloToHandshakeUs
207
207
  );
208
208
  if (this.routingContext && this.usageCounters) {
209
209
  this.usageCounters.incrManyAsync(
@@ -256,8 +256,8 @@ class FrictionlessManager extends CaptchaManager {
256
256
  effectiveParams.entropyWallClockOffsetMs,
257
257
  effectiveParams.entropyMathRandomFirst,
258
258
  effectiveParams.currentUrl,
259
- effectiveParams.tcpToChelloMs,
260
- effectiveParams.chelloToHandshakeMs
259
+ effectiveParams.tcpToChelloUs,
260
+ effectiveParams.chelloToHandshakeUs
261
261
  );
262
262
  }
263
263
  scoreIncreaseAccessPolicy(accessPolicy, baseBotScore, botScore, scoreComponents) {
@@ -1 +1 @@
1
- {"version":3,"file":"checkTrafficFilter.d.ts","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,YAAY,EAEZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC3B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,aAAa,GAC1B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,kBAAkB,GAC/B,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,iBAAiB,GAC9B,YAAY,CAAC,eAAe,CAAC;AAEhC,MAAM,MAAM,kBAAkB,GAC3B;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAyInD,eAAO,MAAM,kBAAkB,WACtB,cAAc,GAAG,SAAS,iBACnB,OAAO,CAAC,cAAc,CAAC,iBACvB,aAAa,CAAC,cAAc,GAAG,SAAS,CAAC,iBACzC,OAAO,KACpB,kBAsBF,CAAC"}
1
+ {"version":3,"file":"checkTrafficFilter.d.ts","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,YAAY,EAEZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC3B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,aAAa,GAC1B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,kBAAkB,GAC/B,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,iBAAiB,GAC9B,YAAY,CAAC,eAAe,CAAC;AAEhC,MAAM,MAAM,kBAAkB,GAC3B;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAwInD,eAAO,MAAM,kBAAkB,WACtB,cAAc,GAAG,SAAS,iBACnB,OAAO,CAAC,cAAc,CAAC,iBACvB,aAAa,CAAC,cAAc,GAAG,SAAS,CAAC,iBACzC,OAAO,KACpB,kBAkBF,CAAC"}
@@ -21,7 +21,7 @@ const isDatacenterAllowlisted = (ipInfo, allowlist) => {
21
21
  );
22
22
  return candidates.some((c) => normalisedAllowlist.includes(c));
23
23
  };
24
- const evaluateIpInfo = (ipInfo, trafficFilter, options) => {
24
+ const evaluateIpInfo = (ipInfo, trafficFilter, isDnsExtra = false) => {
25
25
  if (!ipInfo || !ipInfo.isValid) {
26
26
  return { isBlocked: false };
27
27
  }
@@ -44,7 +44,8 @@ const evaluateIpInfo = (ipInfo, trafficFilter, options) => {
44
44
  return { isBlocked: true, reason: ResultReason.ABUSER_BLOCKED };
45
45
  }
46
46
  }
47
- if (trafficFilter.blockDatacenter && ipInfo.isDatacenter && ipInfo.providerType !== "isp" && !(options.suppressVpnDatacenterInteraction && ipInfo.isVPN && !trafficFilter.blockVpn) && !isDatacenterAllowlisted(ipInfo, trafficFilter.datacenterNameAllowlist)) {
47
+ const datacenterSuppressedByCategory = ipInfo.isVPN && !trafficFilter.blockVpn || ipInfo.isProxy && !trafficFilter.blockProxy || ipInfo.isTor && !trafficFilter.blockTor || ipInfo.isCrawler && !trafficFilter.blockCrawler;
48
+ if (trafficFilter.blockDatacenter && ipInfo.isDatacenter && ipInfo.providerType !== "isp" && !datacenterSuppressedByCategory && !isDatacenterAllowlisted(ipInfo, trafficFilter.datacenterNameAllowlist)) {
48
49
  return { isBlocked: true, reason: ResultReason.DATACENTER_BLOCKED };
49
50
  }
50
51
  if (trafficFilter.blockMobile && ipInfo.isMobile) {
@@ -53,15 +54,13 @@ const evaluateIpInfo = (ipInfo, trafficFilter, options) => {
53
54
  if (trafficFilter.blockSatellite && ipInfo.isSatellite) {
54
55
  return { isBlocked: true, reason: ResultReason.SATELLITE_BLOCKED };
55
56
  }
56
- if (trafficFilter.blockCrawler && ipInfo.isCrawler) {
57
+ if (!isDnsExtra && trafficFilter.blockCrawler && ipInfo.isCrawler) {
57
58
  return { isBlocked: true, reason: ResultReason.CRAWLER_BLOCKED };
58
59
  }
59
60
  return { isBlocked: false };
60
61
  };
61
62
  const checkTrafficFilter = (ipInfo, trafficFilter, extraIpInfos, dnsPathValid) => {
62
- const primary = evaluateIpInfo(ipInfo, trafficFilter, {
63
- suppressVpnDatacenterInteraction: true
64
- });
63
+ const primary = evaluateIpInfo(ipInfo, trafficFilter);
65
64
  if (primary.isBlocked) {
66
65
  return primary;
67
66
  }
@@ -69,9 +68,7 @@ const checkTrafficFilter = (ipInfo, trafficFilter, extraIpInfos, dnsPathValid) =
69
68
  return { isBlocked: false };
70
69
  }
71
70
  for (const extra of extraIpInfos ?? []) {
72
- const result = evaluateIpInfo(extra, trafficFilter, {
73
- suppressVpnDatacenterInteraction: false
74
- });
71
+ const result = evaluateIpInfo(extra, trafficFilter, true);
75
72
  if (result.isBlocked) {
76
73
  return result;
77
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checkTrafficFilter.js","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkTrafficFilter.js","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { getIPAddressFromBigInt } from "@prosopo/util";
6
6
  import { randomAsHex } from "@prosopo/util-crypto";
7
7
  import { GenericContainer } from "testcontainers";
8
8
  import { afterAll, beforeAll, beforeEach, describe, expect, it, vi, } from "vitest";
9
- import { getPrioritisedAccessRule } from "../../../api/blacklistRequestInspector.js";
9
+ import { getPrioritisedAccessRule, getVerdictCache, } from "../../../api/blacklistRequestInspector.js";
10
10
  describe("blacklistRequestInspector Integration Tests", () => {
11
11
  describe("getPrioritisedAccessRule", () => {
12
12
  let env;
@@ -80,6 +80,7 @@ describe("blacklistRequestInspector Integration Tests", () => {
80
80
  beforeEach(async () => {
81
81
  [siteKeyMnemonic, siteKey] = await generateMnemonic();
82
82
  await accessRulesStorage.deleteAllRules();
83
+ getVerdictCache().clear();
83
84
  });
84
85
  it("should return a rule when a JA4-UserAgent rule exists and the user matches the User Agent and the JA4", async () => {
85
86
  const accessRule = accessRuleInput.parse({