xypriss 3.0.0 → 3.1.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 (22) hide show
  1. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +72 -12
  2. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  3. package/dist/cjs/src/middleware/built-in/security/BrowserOnlyProtector.js +11 -9
  4. package/dist/cjs/src/middleware/built-in/security/BrowserOnlyProtector.js.map +1 -1
  5. package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js +465 -0
  6. package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -0
  7. package/dist/cjs/src/middleware/built-in/security/TerminalOnlyProtector.js +1 -1
  8. package/dist/cjs/src/middleware/built-in/security/TerminalOnlyProtector.js.map +1 -1
  9. package/dist/cjs/src/middleware/security-middleware.js +49 -24
  10. package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
  11. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +72 -12
  12. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  13. package/dist/esm/src/middleware/built-in/security/BrowserOnlyProtector.js +11 -9
  14. package/dist/esm/src/middleware/built-in/security/BrowserOnlyProtector.js.map +1 -1
  15. package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js +444 -0
  16. package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -0
  17. package/dist/esm/src/middleware/built-in/security/TerminalOnlyProtector.js +1 -1
  18. package/dist/esm/src/middleware/built-in/security/TerminalOnlyProtector.js.map +1 -1
  19. package/dist/esm/src/middleware/security-middleware.js +49 -24
  20. package/dist/esm/src/middleware/security-middleware.js.map +1 -1
  21. package/dist/index.d.ts +139 -62
  22. package/package.json +1 -1
@@ -0,0 +1,465 @@
1
+ 'use strict';
2
+
3
+ var Logger = require('../../../../shared/logger/Logger.js');
4
+ var crypto = require('crypto');
5
+
6
+ function _interopNamespaceDefault(e) {
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var crypto__namespace = /*#__PURE__*/_interopNamespaceDefault(crypto);
24
+
25
+ /**
26
+ * XyRS - XyPriss Request Signature Protector
27
+ * Validates request signatures for API authentication
28
+ * Uses a predefined header name with developer-configured secret value
29
+ * Enhanced with robust validation and security measures
30
+ */
31
+ class RequestSignatureProtector {
32
+ constructor(options, logger) {
33
+ this.HEADER_NAME = "XP-Request-Sig";
34
+ this.failedAttempts = new Map();
35
+ this.CLEANUP_INTERVAL = 60000; // 1 minute
36
+ // Strict validation of required secret
37
+ this.validateSecret(options.secret, options.minSecretLength);
38
+ this.config = {
39
+ errorMessage: "Invalid or missing request signature",
40
+ statusCode: 401,
41
+ debug: false,
42
+ caseSensitive: true,
43
+ trimValue: true,
44
+ maxHeaderLength: 512,
45
+ maxFailedAttempts: 5,
46
+ blockDuration: 15 * 60 * 1000, // 15 minutes
47
+ minSecretLength: 32,
48
+ timingSafeComparison: true,
49
+ rejectSuspiciousPatterns: true,
50
+ ...options,
51
+ };
52
+ // Store hashed version of secret for additional security
53
+ this.SECRET_HASH = this.hashSecret(this.config.secret);
54
+ // Initialize logger
55
+ this.logger =
56
+ logger ||
57
+ new Logger.Logger({
58
+ enabled: true,
59
+ level: "debug",
60
+ components: { security: true },
61
+ types: { debug: true },
62
+ });
63
+ // Start cleanup timer for failed attempts tracking
64
+ this.startCleanupTimer();
65
+ this.logSecurityEvent("info", "XyRS initialized with strict validation");
66
+ }
67
+ /**
68
+ * Get the request signature middleware function
69
+ */
70
+ getMiddleware() {
71
+ return (req, res, next) => {
72
+ this.handleRequest(req, res, next);
73
+ };
74
+ }
75
+ /**
76
+ * Handle incoming request and validate signature
77
+ */
78
+ handleRequest(req, res, next) {
79
+ const clientId = this.extractClientIdentifier(req);
80
+ // Check if client is currently blocked
81
+ if (this.isClientBlocked(clientId)) {
82
+ return this.blockRequest(res, "RATE_LIMITED", "Too many failed authentication attempts. Temporarily blocked.", clientId);
83
+ }
84
+ if (this.config.debug) {
85
+ this.logger.debug("security", "XyRS validating request signature");
86
+ }
87
+ // Strict header extraction
88
+ const signature = this.extractSignatureHeader(req);
89
+ if (signature === null) {
90
+ this.recordFailedAttempt(clientId);
91
+ return this.blockRequest(res, "MISSING_SIGNATURE", `Required header '${this.HEADER_NAME}' is missing or malformed`, clientId);
92
+ }
93
+ // Length validation to prevent DoS
94
+ if (!this.validateHeaderLength(signature)) {
95
+ this.recordFailedAttempt(clientId);
96
+ return this.blockRequest(res, "INVALID_HEADER_LENGTH", `Header value exceeds maximum allowed length`, clientId);
97
+ }
98
+ // Suspicious pattern detection
99
+ if (this.config.rejectSuspiciousPatterns &&
100
+ this.containsSuspiciousPatterns(signature)) {
101
+ this.recordFailedAttempt(clientId);
102
+ return this.blockRequest(res, "SUSPICIOUS_PATTERN", `Header contains suspicious or malicious patterns`, clientId);
103
+ }
104
+ // Process signature value
105
+ const processedSignature = this.processSignatureValue(signature);
106
+ const expectedSignature = this.processSignatureValue(this.config.secret);
107
+ // Validate signature with timing-safe comparison
108
+ const isValid = this.compareSignatures(processedSignature, expectedSignature);
109
+ if (!isValid) {
110
+ this.recordFailedAttempt(clientId);
111
+ this.logSecurityEvent("warning", "Invalid signature attempt", {
112
+ clientId,
113
+ signatureLength: signature.length,
114
+ });
115
+ return this.blockRequest(res, "INVALID_SIGNATURE", `Header '${this.HEADER_NAME}' value does not match expected signature`, clientId);
116
+ }
117
+ // Signature is valid - clear any failed attempts
118
+ this.clearFailedAttempts(clientId);
119
+ if (this.config.debug) {
120
+ this.logger.debug("security", "XyRS signature validation passed");
121
+ }
122
+ next();
123
+ }
124
+ /**
125
+ * Extract client identifier for rate limiting (IP-based)
126
+ */
127
+ extractClientIdentifier(req) {
128
+ // Try multiple methods to get real IP
129
+ const ip = req.ip ||
130
+ req.headers["x-forwarded-for"]?.split(",")[0]?.trim() ||
131
+ req.headers["x-real-ip"] ||
132
+ req.connection?.remoteAddress ||
133
+ req.socket?.remoteAddress ||
134
+ "unknown";
135
+ return this.sanitizeClientId(ip);
136
+ }
137
+ /**
138
+ * Sanitize client identifier
139
+ */
140
+ sanitizeClientId(clientId) {
141
+ // Remove IPv6 prefix if present
142
+ let sanitized = clientId.replace(/^::ffff:/, "");
143
+ // Keep only alphanumeric, dots, colons, and hyphens
144
+ sanitized = sanitized.replace(/[^a-zA-Z0-9.:_-]/g, "");
145
+ return sanitized || "unknown";
146
+ }
147
+ /**
148
+ * Strictly extract signature header with no fallbacks
149
+ */
150
+ extractSignatureHeader(req) {
151
+ if (!req.headers || typeof req.headers !== "object") {
152
+ return null;
153
+ }
154
+ // Only check lowercase version (standard HTTP header convention)
155
+ const headerKey = this.HEADER_NAME.toLowerCase();
156
+ const signature = req.headers[headerKey];
157
+ // Strict type checking
158
+ if (typeof signature !== "string") {
159
+ return null;
160
+ }
161
+ // Reject empty or whitespace-only headers
162
+ if (signature.length === 0 || /^\s*$/.test(signature)) {
163
+ return null;
164
+ }
165
+ return signature;
166
+ }
167
+ /**
168
+ * Validate header length to prevent DoS attacks
169
+ */
170
+ validateHeaderLength(signature) {
171
+ return (signature.length > 0 &&
172
+ signature.length <= (this.config.maxHeaderLength || 512));
173
+ }
174
+ /**
175
+ * Detect suspicious patterns in header value
176
+ */
177
+ containsSuspiciousPatterns(signature) {
178
+ // Check for common attack patterns
179
+ const suspiciousPatterns = [
180
+ /[<>\"'`]/g, // HTML/Script injection characters
181
+ /\.\./g, // Path traversal
182
+ /[\x00-\x08\x0B\x0C\x0E-\x1F]/g, // Control characters
183
+ /\${.*}/g, // Template injection
184
+ /\|\||&&/g, // Command injection
185
+ /(\r\n|\n|\r)/g, // CRLF injection
186
+ ];
187
+ return suspiciousPatterns.some((pattern) => pattern.test(signature));
188
+ }
189
+ /**
190
+ * Process signature value based on configuration
191
+ */
192
+ processSignatureValue(value) {
193
+ return this.config.trimValue ? value.trim() : value;
194
+ }
195
+ /**
196
+ * Compare signatures with optional timing-safe comparison
197
+ */
198
+ compareSignatures(received, expected) {
199
+ // Always check lengths first (fast rejection)
200
+ if (received.length !== expected.length) {
201
+ return false;
202
+ }
203
+ if (this.config.timingSafeComparison) {
204
+ return this.timingSafeEqual(received, expected);
205
+ }
206
+ // Standard comparison
207
+ return this.config.caseSensitive
208
+ ? received === expected
209
+ : received.toLowerCase() === expected.toLowerCase();
210
+ }
211
+ /**
212
+ * Timing-safe string comparison to prevent timing attacks
213
+ */
214
+ timingSafeEqual(a, b) {
215
+ // Convert to buffers for timing-safe comparison
216
+ const bufA = Buffer.from(this.config.caseSensitive ? a : a.toLowerCase());
217
+ const bufB = Buffer.from(this.config.caseSensitive ? b : b.toLowerCase());
218
+ if (bufA.length !== bufB.length) {
219
+ return false;
220
+ }
221
+ try {
222
+ return crypto__namespace.timingSafeEqual(bufA, bufB);
223
+ }
224
+ catch {
225
+ return false;
226
+ }
227
+ }
228
+ /**
229
+ * Check if client is currently blocked due to failed attempts
230
+ */
231
+ isClientBlocked(clientId) {
232
+ const attempt = this.failedAttempts.get(clientId);
233
+ if (!attempt || !attempt.blockedUntil) {
234
+ return false;
235
+ }
236
+ const now = Date.now();
237
+ if (now >= attempt.blockedUntil) {
238
+ // Block period expired
239
+ this.failedAttempts.delete(clientId);
240
+ return false;
241
+ }
242
+ return true;
243
+ }
244
+ /**
245
+ * Record failed authentication attempt
246
+ */
247
+ recordFailedAttempt(clientId) {
248
+ const now = Date.now();
249
+ const attempt = this.failedAttempts.get(clientId) || {
250
+ count: 0,
251
+ blockedUntil: null,
252
+ lastAttempt: now,
253
+ };
254
+ attempt.count += 1;
255
+ attempt.lastAttempt = now;
256
+ // Block if threshold exceeded
257
+ if (attempt.count >= (this.config.maxFailedAttempts || 5)) {
258
+ attempt.blockedUntil = now + (this.config.blockDuration || 900000);
259
+ this.logSecurityEvent("warning", "Client blocked due to failed attempts", {
260
+ clientId,
261
+ attempts: attempt.count,
262
+ blockedUntil: new Date(attempt.blockedUntil).toISOString(),
263
+ });
264
+ }
265
+ this.failedAttempts.set(clientId, attempt);
266
+ }
267
+ /**
268
+ * Clear failed attempts for a client
269
+ */
270
+ clearFailedAttempts(clientId) {
271
+ this.failedAttempts.delete(clientId);
272
+ }
273
+ /**
274
+ * Validate secret meets security requirements
275
+ */
276
+ validateSecret(secret, minLength) {
277
+ const minLen = minLength || 32;
278
+ if (!secret || typeof secret !== "string") {
279
+ throw new Error("RequestSignatureProtector: secret is required and must be a string");
280
+ }
281
+ const trimmedSecret = secret.trim();
282
+ if (trimmedSecret.length === 0) {
283
+ throw new Error("RequestSignatureProtector: secret cannot be empty or whitespace-only");
284
+ }
285
+ if (trimmedSecret.length < minLen) {
286
+ throw new Error(`RequestSignatureProtector: secret must be at least ${minLen} characters long (current: ${trimmedSecret.length})`);
287
+ }
288
+ // Check for weak secrets
289
+ if (this.isWeakSecret(trimmedSecret)) {
290
+ throw new Error("RequestSignatureProtector: secret appears to be weak. Use a cryptographically strong random value.");
291
+ }
292
+ }
293
+ /**
294
+ * Detect weak/predictable secrets
295
+ */
296
+ isWeakSecret(secret) {
297
+ const weakPatterns = [
298
+ /^[0-9]+$/, // Only numbers
299
+ /^[a-zA-Z]+$/, // Only letters
300
+ /^(.)\1+$/, // Repeated character
301
+ /^(123|abc|password|secret|key|test|demo|admin)/i, // Common words
302
+ /^[a-f0-9]{32}$/i, // Looks like MD5 (weak)
303
+ ];
304
+ return weakPatterns.some((pattern) => pattern.test(secret));
305
+ }
306
+ /**
307
+ * Hash secret for internal verification
308
+ */
309
+ hashSecret(secret) {
310
+ return crypto__namespace.createHash("sha256").update(secret).digest("hex");
311
+ }
312
+ /**
313
+ * Start cleanup timer for failed attempts
314
+ */
315
+ startCleanupTimer() {
316
+ this.cleanupTimer = setInterval(() => {
317
+ this.cleanupExpiredAttempts();
318
+ }, this.CLEANUP_INTERVAL);
319
+ // Don't keep process alive for cleanup
320
+ if (this.cleanupTimer.unref) {
321
+ this.cleanupTimer.unref();
322
+ }
323
+ }
324
+ /**
325
+ * Clean up expired failed attempt records
326
+ */
327
+ cleanupExpiredAttempts() {
328
+ const now = Date.now();
329
+ const expiredClients = [];
330
+ for (const [clientId, attempt] of this.failedAttempts.entries()) {
331
+ // Remove if block expired and no recent attempts
332
+ if (attempt.blockedUntil &&
333
+ now >= attempt.blockedUntil &&
334
+ now - attempt.lastAttempt > this.CLEANUP_INTERVAL) {
335
+ expiredClients.push(clientId);
336
+ }
337
+ }
338
+ expiredClients.forEach((clientId) => this.failedAttempts.delete(clientId));
339
+ }
340
+ /**
341
+ * Block the request with appropriate error response
342
+ */
343
+ blockRequest(res, code, details, clientId) {
344
+ const isDevelopment = this.config.debug;
345
+ const response = {
346
+ error: isDevelopment
347
+ ? this.config.errorMessage
348
+ : "Authentication required",
349
+ timestamp: new Date().toISOString(),
350
+ code: "NEHONIX_XYRS_001",
351
+ };
352
+ // Add detailed info only in debug mode
353
+ if (isDevelopment) {
354
+ response.xyrs = {
355
+ module: "RequestSignature",
356
+ code,
357
+ details,
358
+ requiredHeader: this.HEADER_NAME,
359
+ hint: "Include the X-XyRS header with your configured secret value",
360
+ };
361
+ }
362
+ if (this.config.debug && clientId) {
363
+ this.logger.debug("security", "XyRS blocking request", {
364
+ code,
365
+ details,
366
+ clientId,
367
+ requiredHeader: this.HEADER_NAME,
368
+ });
369
+ }
370
+ res.status(this.config.statusCode).json(response);
371
+ }
372
+ /**
373
+ * Log security events
374
+ */
375
+ logSecurityEvent(level, message, metadata) {
376
+ if (this.config.debug) {
377
+ const logMethod = level === "error"
378
+ ? "error"
379
+ : level === "warning"
380
+ ? "warn"
381
+ : "debug";
382
+ this.logger[logMethod]("security", message, metadata);
383
+ }
384
+ }
385
+ /**
386
+ * Update configuration with strict validation
387
+ */
388
+ updateConfig(newConfig) {
389
+ if (newConfig.secret !== undefined) {
390
+ this.validateSecret(newConfig.secret, newConfig.minSecretLength);
391
+ }
392
+ this.config = { ...this.config, ...newConfig };
393
+ }
394
+ /**
395
+ * Get current configuration (without exposing the secret)
396
+ */
397
+ getConfig() {
398
+ return {
399
+ errorMessage: this.config.errorMessage,
400
+ statusCode: this.config.statusCode,
401
+ debug: this.config.debug,
402
+ caseSensitive: this.config.caseSensitive,
403
+ trimValue: this.config.trimValue,
404
+ hasSecret: !!this.config.secret,
405
+ maxHeaderLength: this.config.maxHeaderLength,
406
+ maxFailedAttempts: this.config.maxFailedAttempts,
407
+ blockDuration: this.config.blockDuration,
408
+ minSecretLength: this.config.minSecretLength,
409
+ timingSafeComparison: this.config.timingSafeComparison,
410
+ rejectSuspiciousPatterns: this.config.rejectSuspiciousPatterns,
411
+ };
412
+ }
413
+ /**
414
+ * Get the header name used for signatures
415
+ */
416
+ getHeaderName() {
417
+ return this.HEADER_NAME;
418
+ }
419
+ /**
420
+ * Validate if a signature would be accepted (for testing)
421
+ */
422
+ validateSignature(signature) {
423
+ if (!signature || typeof signature !== "string") {
424
+ return false;
425
+ }
426
+ if (!this.validateHeaderLength(signature)) {
427
+ return false;
428
+ }
429
+ if (this.config.rejectSuspiciousPatterns &&
430
+ this.containsSuspiciousPatterns(signature)) {
431
+ return false;
432
+ }
433
+ const processedSignature = this.processSignatureValue(signature);
434
+ const expectedSignature = this.processSignatureValue(this.config.secret);
435
+ return this.compareSignatures(processedSignature, expectedSignature);
436
+ }
437
+ /**
438
+ * Get statistics about failed attempts (for monitoring)
439
+ */
440
+ getSecurityStats() {
441
+ const now = Date.now();
442
+ let blockedCount = 0;
443
+ for (const attempt of this.failedAttempts.values()) {
444
+ if (attempt.blockedUntil && now < attempt.blockedUntil) {
445
+ blockedCount++;
446
+ }
447
+ }
448
+ return {
449
+ trackedClients: this.failedAttempts.size,
450
+ blockedClients: blockedCount,
451
+ };
452
+ }
453
+ /**
454
+ * Cleanup resources
455
+ */
456
+ destroy() {
457
+ if (this.cleanupTimer) {
458
+ clearInterval(this.cleanupTimer);
459
+ }
460
+ this.failedAttempts.clear();
461
+ }
462
+ }
463
+
464
+ exports.RequestSignatureProtector = RequestSignatureProtector;
465
+ //# sourceMappingURL=RequestSignatureProtector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestSignatureProtector.js","sources":["../../../../../../src/middleware/built-in/security/RequestSignatureProtector.ts"],"sourcesContent":[null],"names":["Logger","crypto"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;MAMU,yBAAyB,CAAA;IASlC,WAAY,CAAA,OAA+B,EAAE,MAAe,EAAA;QAP3C,IAAW,CAAA,WAAA,GAAG,gBAAgB,CAAC;AAExC,QAAA,IAAA,CAAA,cAAc,GAA+B,IAAI,GAAG,EAAE,CAAC;AAE9C,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC;;QAKtC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAE7D,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,YAAY,EAAE,sCAAsC;AACpD,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,iBAAiB,EAAE,CAAC;AACpB,YAAA,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;AAC7B,YAAA,eAAe,EAAE,EAAE;AACnB,YAAA,oBAAoB,EAAE,IAAI;AAC1B,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,GAAG,OAAO;SACb,CAAC;;AAGF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;AAGvD,QAAA,IAAI,CAAC,MAAM;YACP,MAAM;AACN,gBAAA,IAAIA,aAAM,CAAC;AACP,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC9B,oBAAA,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACzB,iBAAA,CAAC,CAAC;;QAGP,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,IAAI,CAAC,gBAAgB,CACjB,MAAM,EACN,yCAAyC,CAC5C,CAAC;KACL;AAED;;AAEG;IACI,aAAa,GAAA;AAChB,QAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;YACrC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,SAAC,CAAC;KACL;AAED;;AAEG;AACK,IAAA,aAAa,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,EAAA;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;;AAGnD,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,YAAY,CACpB,GAAG,EACH,cAAc,EACd,+DAA+D,EAC/D,QAAQ,CACX,CAAC;SACL;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;SACtE;;QAGD,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAEnD,QAAA,IAAI,SAAS,KAAK,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACnC,YAAA,OAAO,IAAI,CAAC,YAAY,CACpB,GAAG,EACH,mBAAmB,EACnB,CAAoB,iBAAA,EAAA,IAAI,CAAC,WAAW,CAAA,yBAAA,CAA2B,EAC/D,QAAQ,CACX,CAAC;SACL;;QAGD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACnC,YAAA,OAAO,IAAI,CAAC,YAAY,CACpB,GAAG,EACH,uBAAuB,EACvB,CAA6C,2CAAA,CAAA,EAC7C,QAAQ,CACX,CAAC;SACL;;AAGD,QAAA,IACI,IAAI,CAAC,MAAM,CAAC,wBAAwB;AACpC,YAAA,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAC5C;AACE,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACnC,YAAA,OAAO,IAAI,CAAC,YAAY,CACpB,GAAG,EACH,oBAAoB,EACpB,CAAkD,gDAAA,CAAA,EAClD,QAAQ,CACX,CAAC;SACL;;QAGD,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACjE,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CACrB,CAAC;;QAGF,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAClC,kBAAkB,EAClB,iBAAiB,CACpB,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,2BAA2B,EAAE;gBAC1D,QAAQ;gBACR,eAAe,EAAE,SAAS,CAAC,MAAM;AACpC,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,IAAI,CAAC,YAAY,CACpB,GAAG,EACH,mBAAmB,EACnB,CAAW,QAAA,EAAA,IAAI,CAAC,WAAW,CAAA,yCAAA,CAA2C,EACtE,QAAQ,CACX,CAAC;SACL;;AAGD,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAC;SACrE;AAED,QAAA,IAAI,EAAE,CAAC;KACV;AAED;;AAEG;AACK,IAAA,uBAAuB,CAAC,GAAQ,EAAA;;AAEpC,QAAA,MAAM,EAAE,GACJ,GAAG,CAAC,EAAE;AACN,YAAA,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACrD,YAAA,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;YACxB,GAAG,CAAC,UAAU,EAAE,aAAa;YAC7B,GAAG,CAAC,MAAM,EAAE,aAAa;AACzB,YAAA,SAAS,CAAC;AAEd,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;KACpC;AAED;;AAEG;AACK,IAAA,gBAAgB,CAAC,QAAgB,EAAA;;QAErC,IAAI,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;;QAEjD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,SAAS,IAAI,SAAS,CAAC;KACjC;AAED;;AAEG;AACK,IAAA,sBAAsB,CAAC,GAAQ,EAAA;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE;AACjD,YAAA,OAAO,IAAI,CAAC;SACf;;QAGD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;AAGzC,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,OAAO,IAAI,CAAC;SACf;;AAGD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACnD,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,OAAO,SAAS,CAAC;KACpB;AAED;;AAEG;AACK,IAAA,oBAAoB,CAAC,SAAiB,EAAA;AAC1C,QAAA,QACI,SAAS,CAAC,MAAM,GAAG,CAAC;AACpB,YAAA,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC,EAC1D;KACL;AAED;;AAEG;AACK,IAAA,0BAA0B,CAAC,SAAiB,EAAA;;AAEhD,QAAA,MAAM,kBAAkB,GAAG;AACvB,YAAA,WAAW;AACX,YAAA,OAAO;AACP,YAAA,+BAA+B;AAC/B,YAAA,SAAS;AACT,YAAA,UAAU;AACV,YAAA,eAAe;SAClB,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACxE;AAED;;AAEG;AACK,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;KACvD;AAED;;AAEG;IACK,iBAAiB,CAAC,QAAgB,EAAE,QAAgB,EAAA;;QAExD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AACrC,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;YAClC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACnD;;AAGD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa;cAC1B,QAAQ,KAAK,QAAQ;cACrB,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC3D;AAED;;AAEG;IACK,eAAe,CAAC,CAAS,EAAE,CAAS,EAAA;;QAExC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACpB,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAClD,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACpB,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAClD,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,IAAI;YACA,OAAOC,iBAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7C;AAAC,QAAA,MAAM;AACJ,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;AAED;;AAEG;AACK,IAAA,eAAe,CAAC,QAAgB,EAAA;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACnC,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE;;AAE7B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;AAEG;AACK,IAAA,mBAAmB,CAAC,QAAgB,EAAA;AACxC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;AACjD,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,WAAW,EAAE,GAAG;SACnB,CAAC;AAEF,QAAA,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;AACnB,QAAA,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;;AAG1B,QAAA,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC,EAAE;AACvD,YAAA,OAAO,CAAC,YAAY,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,gBAAgB,CACjB,SAAS,EACT,uCAAuC,EACvC;gBACI,QAAQ;gBACR,QAAQ,EAAE,OAAO,CAAC,KAAK;gBACvB,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;AAC7D,aAAA,CACJ,CAAC;SACL;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC9C;AAED;;AAEG;AACK,IAAA,mBAAmB,CAAC,QAAgB,EAAA;AACxC,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KACxC;AAED;;AAEG;IACK,cAAc,CAAC,MAAW,EAAE,SAAkB,EAAA;AAClD,QAAA,MAAM,MAAM,GAAG,SAAS,IAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CACX,oEAAoE,CACvE,CAAC;SACL;AAED,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;AAEpC,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CACX,sEAAsE,CACzE,CAAC;SACL;AAED,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,MAAM,EAAE;YAC/B,MAAM,IAAI,KAAK,CACX,CAAsD,mDAAA,EAAA,MAAM,CAA8B,2BAAA,EAAA,aAAa,CAAC,MAAM,CAAG,CAAA,CAAA,CACpH,CAAC;SACL;;AAGD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;AAClC,YAAA,MAAM,IAAI,KAAK,CACX,oGAAoG,CACvG,CAAC;SACL;KACJ;AAED;;AAEG;AACK,IAAA,YAAY,CAAC,MAAc,EAAA;AAC/B,QAAA,MAAM,YAAY,GAAG;AACjB,YAAA,UAAU;AACV,YAAA,aAAa;AACb,YAAA,UAAU;AACV,YAAA,iDAAiD;AACjD,YAAA,iBAAiB;SACpB,CAAC;AAEF,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/D;AAED;;AAEG;AACK,IAAA,UAAU,CAAC,MAAc,EAAA;AAC7B,QAAA,OAAOA,iBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACnE;AAED;;AAEG;IACK,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,MAAK;YACjC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAClC,SAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;;AAG1B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC7B;KACJ;AAED;;AAEG;IACK,sBAAsB,GAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAa,EAAE,CAAC;AAEpC,QAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;;YAE7D,IACI,OAAO,CAAC,YAAY;gBACpB,GAAG,IAAI,OAAO,CAAC,YAAY;gBAC3B,GAAG,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,EACnD;AACE,gBAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACjC;SACJ;AAED,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CACvC,CAAC;KACL;AAED;;AAEG;AACK,IAAA,YAAY,CAChB,GAAQ,EACR,IAAY,EACZ,OAAgB,EAChB,QAAiB,EAAA;AAEjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAExC,QAAA,MAAM,QAAQ,GAAQ;AAClB,YAAA,KAAK,EAAE,aAAa;AAChB,kBAAE,IAAI,CAAC,MAAM,CAAC,YAAY;AAC1B,kBAAE,yBAAyB;AAC/B,YAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACnC,YAAA,IAAI,EAAE,kBAAkB;SAC3B,CAAC;;QAGF,IAAI,aAAa,EAAE;YACf,QAAQ,CAAC,IAAI,GAAG;AACZ,gBAAA,MAAM,EAAE,kBAAkB;gBAC1B,IAAI;gBACJ,OAAO;gBACP,cAAc,EAAE,IAAI,CAAC,WAAW;AAChC,gBAAA,IAAI,EAAE,6DAA6D;aACtE,CAAC;SACL;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,uBAAuB,EAAE;gBACnD,IAAI;gBACJ,OAAO;gBACP,QAAQ;gBACR,cAAc,EAAE,IAAI,CAAC,WAAW;AACnC,aAAA,CAAC,CAAC;SACN;AAED,QAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrD;AAED;;AAEG;AACK,IAAA,gBAAgB,CACpB,KAAmC,EACnC,OAAe,EACf,QAAc,EAAA;AAEd,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,YAAA,MAAM,SAAS,GACX,KAAK,KAAK,OAAO;AACb,kBAAE,OAAO;kBACP,KAAK,KAAK,SAAS;AACrB,sBAAE,MAAM;sBACN,OAAO,CAAC;AACjB,YAAA,IAAI,CAAC,MAAc,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SAClE;KACJ;AAED;;AAEG;AACI,IAAA,YAAY,CAAC,SAA0C,EAAA;AAC1D,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;SACpE;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;KAClD;AAED;;AAEG;IACI,SAAS,GAAA;QAGZ,OAAO;AACH,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;AACtC,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACxB,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;AACxC,YAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AAChC,YAAA,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;AAC/B,YAAA,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;AAC5C,YAAA,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;AAChD,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;AACxC,YAAA,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;AAC5C,YAAA,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;AACtD,YAAA,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB;SACjE,CAAC;KACL;AAED;;AAEG;IACI,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;AAED;;AAEG;AACI,IAAA,iBAAiB,CAAC,SAAiB,EAAA;QACtC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AAC7C,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE;AACvC,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,IACI,IAAI,CAAC,MAAM,CAAC,wBAAwB;AACpC,YAAA,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAC5C;AACE,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACjE,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CACrB,CAAC;QAEF,OAAO,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;KACxE;AAED;;AAEG;IACI,gBAAgB,GAAA;AAInB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE;YAChD,IAAI,OAAO,CAAC,YAAY,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE;AACpD,gBAAA,YAAY,EAAE,CAAC;aAClB;SACJ;QAED,OAAO;AACH,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;AACxC,YAAA,cAAc,EAAE,YAAY;SAC/B,CAAC;KACL;AAED;;AAEG;IACI,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;KAC/B;AACJ;;;;"}
@@ -451,7 +451,7 @@ class TerminalOnlyProtector {
451
451
  };
452
452
  }
453
453
  if (this.config.debug) {
454
- this.logger.debug("security", "TerminalOnly blocking request", {
454
+ this.logger.debug("security", "TermOn blocking request", {
455
455
  code,
456
456
  details,
457
457
  userAgent: res.req?.headers["user-agent"]?.substring(0, 100),
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalOnlyProtector.js","sources":["../../../../../../src/middleware/built-in/security/TerminalOnlyProtector.ts"],"sourcesContent":[null],"names":["Logger"],"mappings":"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"}
1
+ {"version":3,"file":"TerminalOnlyProtector.js","sources":["../../../../../../src/middleware/built-in/security/TerminalOnlyProtector.ts"],"sourcesContent":[null],"names":["Logger"],"mappings":"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"}