xypriss 2.3.6 → 3.0.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 (32) hide show
  1. package/README.md +21 -19
  2. package/dist/cjs/mods/security/src/index.js +1 -1
  3. package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js +2 -2
  4. package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
  5. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +51 -2
  6. package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  7. package/dist/cjs/src/middleware/built-in/security/BrowserOnlyProtector.js +550 -0
  8. package/dist/cjs/src/middleware/built-in/security/BrowserOnlyProtector.js.map +1 -0
  9. package/dist/cjs/src/middleware/built-in/security/TerminalOnlyProtector.js +477 -0
  10. package/dist/cjs/src/middleware/built-in/security/TerminalOnlyProtector.js.map +1 -0
  11. package/dist/cjs/src/middleware/security-middleware.js +238 -81
  12. package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
  13. package/dist/cjs/src/server/components/fastapi/templates/redirectTemp.js +1 -1
  14. package/dist/cjs/src/server/const/default.js +1 -1
  15. package/dist/cjs/src/server/const/default.js.map +1 -1
  16. package/dist/esm/mods/security/src/index.js +1 -1
  17. package/dist/esm/src/cluster/modules/CrossPlatformMemory.js +2 -2
  18. package/dist/esm/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
  19. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +51 -2
  20. package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
  21. package/dist/esm/src/middleware/built-in/security/BrowserOnlyProtector.js +548 -0
  22. package/dist/esm/src/middleware/built-in/security/BrowserOnlyProtector.js.map +1 -0
  23. package/dist/esm/src/middleware/built-in/security/TerminalOnlyProtector.js +475 -0
  24. package/dist/esm/src/middleware/built-in/security/TerminalOnlyProtector.js.map +1 -0
  25. package/dist/esm/src/middleware/security-middleware.js +238 -81
  26. package/dist/esm/src/middleware/security-middleware.js.map +1 -1
  27. package/dist/esm/src/server/components/fastapi/templates/redirectTemp.js +1 -1
  28. package/dist/esm/src/server/const/default.js +1 -1
  29. package/dist/esm/src/server/const/default.js.map +1 -1
  30. package/dist/index.d.ts +187 -6
  31. package/package.json +6 -5
  32. package/scripts/install-memory-cli.js +1 -1
@@ -34,19 +34,47 @@ class SecurityMiddleware {
34
34
  this.csrf = config.csrf !== false ? config.csrf || true : false;
35
35
  this.helmet = config.helmet !== false ? config.helmet || true : false;
36
36
  this.xss = config.xss !== false ? config.xss || true : false;
37
- this.sqlInjection = config.sqlInjection !== false ? config.sqlInjection || true : false;
38
- this.pathTraversal = config.pathTraversal !== false ? config.pathTraversal || false : false;
39
- this.commandInjection = config.commandInjection !== false ? config.commandInjection || false : false;
37
+ this.sqlInjection =
38
+ config.sqlInjection !== false ? config.sqlInjection || true : false;
39
+ this.pathTraversal =
40
+ config.pathTraversal !== false
41
+ ? config.pathTraversal || false
42
+ : false;
43
+ this.commandInjection =
44
+ config.commandInjection !== false
45
+ ? config.commandInjection || false
46
+ : false;
40
47
  this.xxe = config.xxe !== false ? config.xxe || false : false;
41
- this.ldapInjection = config.ldapInjection !== false ? config.ldapInjection || false : false;
42
- this.bruteForce = config.bruteForce !== false ? config.bruteForce || true : false;
43
- this.rateLimit = config.rateLimit !== false ? config.rateLimit || true : false;
48
+ this.ldapInjection =
49
+ config.ldapInjection !== false
50
+ ? config.ldapInjection || false
51
+ : false;
52
+ this.bruteForce =
53
+ config.bruteForce !== false ? config.bruteForce || true : false;
54
+ this.rateLimit =
55
+ config.rateLimit !== false ? config.rateLimit || true : false;
44
56
  this.cors = config.cors !== false ? config.cors || true : false;
45
- this.compression = config.compression !== false ? config.compression || true : false;
57
+ this.compression =
58
+ config.compression !== false ? config.compression || true : false;
46
59
  this.hpp = config.hpp !== false ? config.hpp || true : false;
47
- this.mongoSanitize = config.mongoSanitize !== false ? config.mongoSanitize || true : false;
60
+ this.mongoSanitize =
61
+ config.mongoSanitize !== false
62
+ ? config.mongoSanitize || true
63
+ : false;
48
64
  this.morgan = config.morgan !== false ? config.morgan || true : false;
49
- this.slowDown = config.slowDown !== false ? config.slowDown || true : false;
65
+ this.slowDown =
66
+ config.slowDown !== false ? config.slowDown || true : false;
67
+ this.browserOnly =
68
+ config.browserOnly !== false ? config.browserOnly || false : false;
69
+ this.terminalOnly =
70
+ config.terminalOnly !== false ? config.terminalOnly || false : false;
71
+ // Validate that both browserOnly and terminalOnly are not enabled simultaneously
72
+ const browserOnlyEnabled = this.isBrowserOnlyEnabled();
73
+ const terminalOnlyEnabled = this.isTerminalOnlyEnabled();
74
+ if (browserOnlyEnabled && terminalOnlyEnabled) {
75
+ throw new Error("Security configuration error: browserOnly and terminalOnly cannot be enabled simultaneously. " +
76
+ "Choose one access control method or disable both.");
77
+ }
50
78
  this.encryption = {
51
79
  algorithm: "AES-256-GCM",
52
80
  keySize: 32,
@@ -69,7 +97,7 @@ class SecurityMiddleware {
69
97
  entropy: "high",
70
98
  }),
71
99
  name: config.authentication?.session?.name ||
72
- "nehonix.XyPriss.sid",
100
+ "xypriss.nehonix.sid",
73
101
  cookie: {
74
102
  maxAge: 24 * 60 * 60 * 1000, // 24 hours
75
103
  secure: true,
@@ -84,45 +112,89 @@ class SecurityMiddleware {
84
112
  this.routeConfig = config.routeConfig;
85
113
  // Initialize security detectors
86
114
  this.sqlInjectionDetector = new SQLInjectionDetector({
87
- strictMode: typeof this.sqlInjection === 'object' ? this.sqlInjection.strictMode : false,
88
- contextualAnalysis: typeof this.sqlInjection === 'object' ? this.sqlInjection.contextualAnalysis : true,
89
- logAttempts: typeof this.sqlInjection === 'object' ? this.sqlInjection.logAttempts : true,
90
- falsePositiveThreshold: typeof this.sqlInjection === 'object' ? this.sqlInjection.falsePositiveThreshold : 0.6,
115
+ strictMode: typeof this.sqlInjection === "object"
116
+ ? this.sqlInjection.strictMode
117
+ : false,
118
+ contextualAnalysis: typeof this.sqlInjection === "object"
119
+ ? this.sqlInjection.contextualAnalysis
120
+ : true,
121
+ logAttempts: typeof this.sqlInjection === "object"
122
+ ? this.sqlInjection.logAttempts
123
+ : true,
124
+ falsePositiveThreshold: typeof this.sqlInjection === "object"
125
+ ? this.sqlInjection.falsePositiveThreshold
126
+ : 0.6,
91
127
  });
92
128
  this.pathTraversalDetector = new PathTraversalDetector({
93
129
  enabled: !!this.pathTraversal,
94
- strictMode: typeof this.pathTraversal === 'object' ? this.pathTraversal.strictMode : false,
95
- logAttempts: typeof this.pathTraversal === 'object' ? this.pathTraversal.logAttempts : true,
96
- blockOnDetection: typeof this.pathTraversal === 'object' ? this.pathTraversal.blockOnDetection : true,
97
- allowedPaths: typeof this.pathTraversal === 'object' ? this.pathTraversal.allowedPaths : [],
98
- allowedExtensions: typeof this.pathTraversal === 'object' ? this.pathTraversal.allowedExtensions : ['.jpg', '.png', '.pdf', '.txt'],
99
- maxDepth: typeof this.pathTraversal === 'object' ? this.pathTraversal.maxDepth : 3,
100
- falsePositiveThreshold: typeof this.pathTraversal === 'object' ? this.pathTraversal.falsePositiveThreshold : 0.6,
130
+ strictMode: typeof this.pathTraversal === "object"
131
+ ? this.pathTraversal.strictMode
132
+ : false,
133
+ logAttempts: typeof this.pathTraversal === "object"
134
+ ? this.pathTraversal.logAttempts
135
+ : true,
136
+ blockOnDetection: typeof this.pathTraversal === "object"
137
+ ? this.pathTraversal.blockOnDetection
138
+ : true,
139
+ allowedPaths: typeof this.pathTraversal === "object"
140
+ ? this.pathTraversal.allowedPaths
141
+ : [],
142
+ allowedExtensions: typeof this.pathTraversal === "object"
143
+ ? this.pathTraversal.allowedExtensions
144
+ : [".jpg", ".png", ".pdf", ".txt"],
145
+ maxDepth: typeof this.pathTraversal === "object"
146
+ ? this.pathTraversal.maxDepth
147
+ : 3,
148
+ falsePositiveThreshold: typeof this.pathTraversal === "object"
149
+ ? this.pathTraversal.falsePositiveThreshold
150
+ : 0.6,
101
151
  });
102
152
  this.commandInjectionDetector = new CommandInjectionDetector({
103
153
  enabled: !!this.commandInjection,
104
- strictMode: typeof this.commandInjection === 'object' ? this.commandInjection.strictMode : false,
105
- logAttempts: typeof this.commandInjection === 'object' ? this.commandInjection.logAttempts : true,
106
- blockOnDetection: typeof this.commandInjection === 'object' ? this.commandInjection.blockOnDetection : true,
107
- contextualAnalysis: typeof this.commandInjection === 'object' ? this.commandInjection.contextualAnalysis : true,
108
- allowedCommands: typeof this.commandInjection === 'object' ? this.commandInjection.allowedCommands : [],
109
- falsePositiveThreshold: typeof this.commandInjection === 'object' ? this.commandInjection.falsePositiveThreshold : 0.7,
154
+ strictMode: typeof this.commandInjection === "object"
155
+ ? this.commandInjection.strictMode
156
+ : false,
157
+ logAttempts: typeof this.commandInjection === "object"
158
+ ? this.commandInjection.logAttempts
159
+ : true,
160
+ blockOnDetection: typeof this.commandInjection === "object"
161
+ ? this.commandInjection.blockOnDetection
162
+ : true,
163
+ contextualAnalysis: typeof this.commandInjection === "object"
164
+ ? this.commandInjection.contextualAnalysis
165
+ : true,
166
+ allowedCommands: typeof this.commandInjection === "object"
167
+ ? this.commandInjection.allowedCommands
168
+ : [],
169
+ falsePositiveThreshold: typeof this.commandInjection === "object"
170
+ ? this.commandInjection.falsePositiveThreshold
171
+ : 0.7,
110
172
  });
111
173
  this.xxeProtector = new XXEProtector({
112
174
  enabled: !!this.xxe,
113
- strictMode: typeof this.xxe === 'object' ? this.xxe.strictMode : true,
114
- logAttempts: typeof this.xxe === 'object' ? this.xxe.logAttempts : true,
115
- blockOnDetection: typeof this.xxe === 'object' ? this.xxe.blockOnDetection : true,
116
- allowDTD: typeof this.xxe === 'object' ? this.xxe.allowDTD : false,
117
- allowExternalEntities: typeof this.xxe === 'object' ? this.xxe.allowExternalEntities : false,
118
- maxEntityExpansions: typeof this.xxe === 'object' ? this.xxe.maxEntityExpansions : 0,
175
+ strictMode: typeof this.xxe === "object" ? this.xxe.strictMode : true,
176
+ logAttempts: typeof this.xxe === "object" ? this.xxe.logAttempts : true,
177
+ blockOnDetection: typeof this.xxe === "object" ? this.xxe.blockOnDetection : true,
178
+ allowDTD: typeof this.xxe === "object" ? this.xxe.allowDTD : false,
179
+ allowExternalEntities: typeof this.xxe === "object"
180
+ ? this.xxe.allowExternalEntities
181
+ : false,
182
+ maxEntityExpansions: typeof this.xxe === "object" ? this.xxe.maxEntityExpansions : 0,
119
183
  });
120
184
  this.ldapInjectionDetector = new LDAPInjectionDetector({
121
185
  enabled: !!this.ldapInjection,
122
- strictMode: typeof this.ldapInjection === 'object' ? this.ldapInjection.strictMode : false,
123
- logAttempts: typeof this.ldapInjection === 'object' ? this.ldapInjection.logAttempts : true,
124
- blockOnDetection: typeof this.ldapInjection === 'object' ? this.ldapInjection.blockOnDetection : true,
125
- falsePositiveThreshold: typeof this.ldapInjection === 'object' ? this.ldapInjection.falsePositiveThreshold : 0.6,
186
+ strictMode: typeof this.ldapInjection === "object"
187
+ ? this.ldapInjection.strictMode
188
+ : false,
189
+ logAttempts: typeof this.ldapInjection === "object"
190
+ ? this.ldapInjection.logAttempts
191
+ : true,
192
+ blockOnDetection: typeof this.ldapInjection === "object"
193
+ ? this.ldapInjection.blockOnDetection
194
+ : true,
195
+ falsePositiveThreshold: typeof this.ldapInjection === "object"
196
+ ? this.ldapInjection.falsePositiveThreshold
197
+ : 0.6,
126
198
  });
127
199
  // Initialize all middleware instances
128
200
  this.initializeMiddleware();
@@ -135,20 +207,28 @@ class SecurityMiddleware {
135
207
  // Helmet for security headers
136
208
  if (this.helmet) {
137
209
  const helmetConfig = typeof this.helmet === "object" ? this.helmet : {};
210
+ // Prepare CSP configuration with proper merging
211
+ let cspConfig = false;
212
+ if (this.level === "maximum") {
213
+ cspConfig = {
214
+ directives: {
215
+ defaultSrc: ["'self'"],
216
+ styleSrc: ["'self'", "'unsafe-inline'"],
217
+ scriptSrc: ["'self'"],
218
+ imgSrc: ["'self'", "data:", "https:"],
219
+ },
220
+ };
221
+ }
222
+ else if (helmetConfig.contentSecurityPolicy) {
223
+ // Merge user CSP config with defaults from BuiltInMiddleware
224
+ cspConfig = helmetConfig.contentSecurityPolicy; // BuiltInMiddleware will handle merging
225
+ }
226
+ this.logger.debug("security", "Final cspConfig:", cspConfig);
138
227
  this.helmetMiddleware = BuiltInMiddleware.BuiltInMiddleware.helmet({
139
- contentSecurityPolicy: this.level === "maximum"
140
- ? {
141
- directives: {
142
- defaultSrc: ["'self'"],
143
- styleSrc: ["'self'", "'unsafe-inline'"],
144
- scriptSrc: ["'self'"],
145
- imgSrc: ["'self'", "data:", "https:"],
146
- },
147
- }
148
- : helmetConfig.contentSecurityPolicy
149
- ? helmetConfig.contentSecurityPolicy
150
- : false,
151
- hsts: this.level !== "basic" || helmetConfig.hsts ? helmetConfig.hsts : undefined,
228
+ contentSecurityPolicy: cspConfig,
229
+ hsts: this.level !== "basic" || helmetConfig.hsts
230
+ ? helmetConfig.hsts
231
+ : undefined,
152
232
  crossOriginEmbedderPolicy: this.level === "maximum",
153
233
  });
154
234
  }
@@ -190,8 +270,10 @@ class SecurityMiddleware {
190
270
  legacyHeaders: false,
191
271
  skip: (req) => {
192
272
  // Skip rate limiting for health checks and static assets
193
- return req.path === "/health" || req.path === "/ping" ||
194
- req.path.startsWith("/static/") || req.path.startsWith("/assets/");
273
+ return (req.path === "/health" ||
274
+ req.path === "/ping" ||
275
+ req.path.startsWith("/static/") ||
276
+ req.path.startsWith("/assets/"));
195
277
  },
196
278
  });
197
279
  this.logger.debug("security", `General rate limiting initialized with max: ${maxRequests} requests`);
@@ -213,6 +295,18 @@ class SecurityMiddleware {
213
295
  },
214
296
  });
215
297
  }
298
+ // Browser-only protection
299
+ if (this.isBrowserOnlyEnabled()) {
300
+ const browserOnlyConfig = typeof this.browserOnly === "object" ? this.browserOnly : {};
301
+ this.browserOnlyMiddleware =
302
+ BuiltInMiddleware.BuiltInMiddleware.browserOnly(browserOnlyConfig);
303
+ }
304
+ // Terminal-only protection
305
+ if (this.isTerminalOnlyEnabled()) {
306
+ const terminalOnlyConfig = typeof this.terminalOnly === "object" ? this.terminalOnly : {};
307
+ this.terminalOnlyMiddleware =
308
+ BuiltInMiddleware.BuiltInMiddleware.terminalOnly(terminalOnlyConfig);
309
+ }
216
310
  // Compression middleware
217
311
  if (this.compression) {
218
312
  const compressionConfig = typeof this.compression === "object" ? this.compression : {};
@@ -233,19 +327,23 @@ class SecurityMiddleware {
233
327
  }
234
328
  // MongoDB injection protection
235
329
  if (this.mongoSanitize) {
236
- const mongoConfig = typeof this.mongoSanitize === "object" ? this.mongoSanitize : {};
330
+ const mongoConfig = typeof this.mongoSanitize === "object"
331
+ ? this.mongoSanitize
332
+ : {};
237
333
  this.mongoSanitizeMiddleware = BuiltInMiddleware.BuiltInMiddleware.mongoSanitize({
238
334
  replaceWith: mongoConfig.replaceWith || "_",
239
- onSanitize: mongoConfig.onSanitize || (({ req, key }) => {
240
- console.warn(`Sanitized key ${key} in request from ${req.ip}`);
241
- }),
335
+ onSanitize: mongoConfig.onSanitize ||
336
+ (({ req, key }) => {
337
+ this.logger.warn("security", `Sanitized key ${key} in request from ${req.ip}`);
338
+ }),
242
339
  });
243
340
  }
244
341
  // Morgan logging middleware
245
342
  if (this.morgan) {
246
343
  const morganConfig = typeof this.morgan === "object" ? this.morgan : {};
247
344
  this.morganMiddleware = BuiltInMiddleware.BuiltInMiddleware.morgan({
248
- skip: morganConfig.skip || ((req, res) => res.statusCode < 400),
345
+ skip: morganConfig.skip ||
346
+ ((req, res) => res.statusCode < 400),
249
347
  stream: morganConfig.stream,
250
348
  });
251
349
  }
@@ -255,10 +353,11 @@ class SecurityMiddleware {
255
353
  this.slowDownMiddleware = BuiltInMiddleware.BuiltInMiddleware.slowDown({
256
354
  windowMs: slowDownConfig.windowMs || 15 * 60 * 1000, // 15 minutes
257
355
  delayAfter: slowDownConfig.delayAfter || 100,
258
- delayMs: slowDownConfig.delayMs || ((used, req) => {
259
- const delayAfter = req.slowDown?.limit || 100;
260
- return (used - delayAfter) * 500;
261
- }),
356
+ delayMs: slowDownConfig.delayMs ||
357
+ ((used, req) => {
358
+ const delayAfter = req.slowDown?.limit || 100;
359
+ return (used - delayAfter) * 500;
360
+ }),
262
361
  });
263
362
  }
264
363
  }
@@ -332,6 +431,16 @@ class SecurityMiddleware {
332
431
  this.logger.debug("security", "Adding CSRF middleware");
333
432
  middlewareStack.push(this.csrfMiddleware);
334
433
  }
434
+ // 12. Browser-only protection (blocks cURL and automation tools)
435
+ if (this.isBrowserOnlyEnabled() && this.browserOnlyMiddleware) {
436
+ this.logger.debug("security", "Adding browser-only middleware");
437
+ middlewareStack.push(this.browserOnlyMiddleware);
438
+ }
439
+ // 13. Terminal-only protection (blocks browser requests)
440
+ if (this.isTerminalOnlyEnabled() && this.terminalOnlyMiddleware) {
441
+ this.logger.debug("security", "Adding terminal-only middleware");
442
+ middlewareStack.push(this.terminalOnlyMiddleware);
443
+ }
335
444
  this.logger.debug("security", `Total middleware in stack: ${middlewareStack.length}`);
336
445
  // Execute middleware stack
337
446
  this.executeMiddlewareStack(middlewareStack, req, res, next);
@@ -507,7 +616,8 @@ class SecurityMiddleware {
507
616
  detectedPatterns.push("XSS");
508
617
  }
509
618
  // SQL Injection Detection
510
- if (this.sqlInjection && this.shouldApplySecurityModule(req, this.routeConfig?.sqlInjection)) {
619
+ if (this.sqlInjection &&
620
+ this.shouldApplySecurityModule(req, this.routeConfig?.sqlInjection)) {
511
621
  const sqlResult = this.sqlInjectionDetector.detect(original, currentPath);
512
622
  if (sqlResult.isMalicious) {
513
623
  threatDetected = true;
@@ -519,7 +629,8 @@ class SecurityMiddleware {
519
629
  }
520
630
  }
521
631
  // Path Traversal Detection
522
- if (this.pathTraversal && this.shouldApplySecurityModule(req, this.routeConfig?.pathTraversal)) {
632
+ if (this.pathTraversal &&
633
+ this.shouldApplySecurityModule(req, this.routeConfig?.pathTraversal)) {
523
634
  const pathResult = this.pathTraversalDetector.detect(original);
524
635
  if (pathResult.isMalicious) {
525
636
  threatDetected = true;
@@ -530,7 +641,8 @@ class SecurityMiddleware {
530
641
  }
531
642
  }
532
643
  // Command Injection Detection
533
- if (this.commandInjection && this.shouldApplySecurityModule(req, this.routeConfig?.commandInjection)) {
644
+ if (this.commandInjection &&
645
+ this.shouldApplySecurityModule(req, this.routeConfig?.commandInjection)) {
534
646
  const cmdResult = this.commandInjectionDetector.detect(original);
535
647
  if (cmdResult.isMalicious) {
536
648
  threatDetected = true;
@@ -541,7 +653,10 @@ class SecurityMiddleware {
541
653
  }
542
654
  }
543
655
  // XXE Detection (for XML content)
544
- if (this.xxe && this.shouldApplySecurityModule(req, this.routeConfig?.xxe) && (original.includes('<?xml') || original.includes('<!DOCTYPE'))) {
656
+ if (this.xxe &&
657
+ this.shouldApplySecurityModule(req, this.routeConfig?.xxe) &&
658
+ (original.includes("<?xml") ||
659
+ original.includes("<!DOCTYPE"))) {
545
660
  const xxeResult = this.xxeProtector.detect(original);
546
661
  if (xxeResult.isMalicious) {
547
662
  threatDetected = true;
@@ -552,7 +667,8 @@ class SecurityMiddleware {
552
667
  }
553
668
  }
554
669
  // LDAP Injection Detection
555
- if (this.ldapInjection && this.shouldApplySecurityModule(req, this.routeConfig?.ldapInjection)) {
670
+ if (this.ldapInjection &&
671
+ this.shouldApplySecurityModule(req, this.routeConfig?.ldapInjection)) {
556
672
  const ldapResult = this.ldapInjectionDetector.detect(original);
557
673
  if (ldapResult.isMalicious) {
558
674
  threatDetected = true;
@@ -617,6 +733,28 @@ class SecurityMiddleware {
617
733
  }
618
734
  return null;
619
735
  }
736
+ /**
737
+ * Check if browser-only protection is enabled
738
+ */
739
+ isBrowserOnlyEnabled() {
740
+ if (this.browserOnly === true)
741
+ return true;
742
+ if (typeof this.browserOnly === 'object' && this.browserOnly !== null) {
743
+ return this.browserOnly.enable !== false; // Default to true when config provided
744
+ }
745
+ return false;
746
+ }
747
+ /**
748
+ * Check if terminal-only protection is enabled
749
+ */
750
+ isTerminalOnlyEnabled() {
751
+ if (this.terminalOnly === true)
752
+ return true;
753
+ if (typeof this.terminalOnly === 'object' && this.terminalOnly !== null) {
754
+ return this.terminalOnly.enable !== false; // Default to true when config provided
755
+ }
756
+ return false;
757
+ }
620
758
  /**
621
759
  * Get security configuration
622
760
  */
@@ -625,6 +763,7 @@ class SecurityMiddleware {
625
763
  level: this.level,
626
764
  csrf: this.csrf,
627
765
  helmet: this.helmet,
766
+ browserOnly: this.browserOnly,
628
767
  xss: this.xss,
629
768
  sqlInjection: this.sqlInjection,
630
769
  pathTraversal: this.pathTraversal,
@@ -649,7 +788,7 @@ class SecurityMiddleware {
649
788
  */
650
789
  matchesRoute(requestPath, requestMethod, pattern) {
651
790
  // Handle RoutePattern object
652
- if (typeof pattern === 'object' && 'path' in pattern) {
791
+ if (typeof pattern === "object" && "path" in pattern) {
653
792
  const routePattern = pattern;
654
793
  // Check method if specified
655
794
  if (routePattern.methods && routePattern.methods.length > 0) {
@@ -665,17 +804,33 @@ class SecurityMiddleware {
665
804
  }
666
805
  // Handle string patterns with wildcards
667
806
  const patternStr = pattern;
668
- // Exact match
669
- if (patternStr === requestPath) {
807
+ // Normalize paths by removing trailing slashes for comparison
808
+ const normalizedRequestPath = requestPath.replace(/\/$/, "");
809
+ const normalizedPattern = patternStr.replace(/\/$/, "");
810
+ // Exact match (after normalization)
811
+ if (normalizedPattern === normalizedRequestPath) {
670
812
  return true;
671
813
  }
672
814
  // Wildcard matching (e.g., /api/* matches /api/anything)
673
- if (patternStr.includes('*')) {
674
- const regexPattern = patternStr
675
- .replace(/[.+?^${}()|[\]\\]/g, '\\$&') // Escape special regex chars except *
676
- .replace(/\*/g, '.*'); // Convert * to .*
677
- const regex = new RegExp(`^${regexPattern}$`);
678
- return regex.test(requestPath);
815
+ if (patternStr.includes("*")) {
816
+ // Handle trailing /* specially to match with or without trailing slash
817
+ if (patternStr.endsWith("/*")) {
818
+ const prefix = patternStr.slice(0, -2); // Remove /*
819
+ // Match if requestPath starts with prefix, optionally followed by /
820
+ const regex = new RegExp(`^${prefix.replace(/[.+?^${}()|[\]\\]/g, "\\$&")}(?:/.*)?$`);
821
+ return regex.test(requestPath);
822
+ }
823
+ else {
824
+ const regexPattern = patternStr
825
+ .replace(/[.+?^${}()|[\]\\]/g, "\\$&") // Escape special regex chars except *
826
+ .replace(/\*/g, ".*"); // Convert * to .*
827
+ const regex = new RegExp(`^${regexPattern}$`);
828
+ return regex.test(requestPath);
829
+ }
830
+ }
831
+ // Path prefix matching (for patterns without wildcards)
832
+ if (normalizedRequestPath.startsWith(normalizedPattern)) {
833
+ return true;
679
834
  }
680
835
  return false;
681
836
  }
@@ -686,17 +841,19 @@ class SecurityMiddleware {
686
841
  if (!moduleConfig) {
687
842
  return true; // Apply by default if no route config
688
843
  }
689
- const requestPath = req.path || req.url || '';
690
- const requestMethod = req.method || 'GET';
844
+ const requestPath = req.path || req.url || "";
845
+ const requestMethod = req.method || "GET";
691
846
  // Check includeRoutes first (whitelist approach)
692
- if (moduleConfig.includeRoutes && moduleConfig.includeRoutes.length > 0) {
847
+ if (moduleConfig.includeRoutes &&
848
+ moduleConfig.includeRoutes.length > 0) {
693
849
  // Only apply if route is in the include list
694
- return moduleConfig.includeRoutes.some(pattern => this.matchesRoute(requestPath, requestMethod, pattern));
850
+ return moduleConfig.includeRoutes.some((pattern) => this.matchesRoute(requestPath, requestMethod, pattern));
695
851
  }
696
852
  // Check excludeRoutes (blacklist approach)
697
- if (moduleConfig.excludeRoutes && moduleConfig.excludeRoutes.length > 0) {
853
+ if (moduleConfig.excludeRoutes &&
854
+ moduleConfig.excludeRoutes.length > 0) {
698
855
  // Don't apply if route is in the exclude list
699
- const isExcluded = moduleConfig.excludeRoutes.some(pattern => this.matchesRoute(requestPath, requestMethod, pattern));
856
+ const isExcluded = moduleConfig.excludeRoutes.some((pattern) => this.matchesRoute(requestPath, requestMethod, pattern));
700
857
  return !isExcluded;
701
858
  }
702
859
  return true; // Apply by default
@@ -1 +1 @@
1
- {"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["Logger","XyPrissJS","BuiltInMiddleware"],"mappings":"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"}
1
+ {"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["Logger","XyPrissJS","BuiltInMiddleware"],"mappings":"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"}
@@ -89,7 +89,7 @@ const redirectTempHtml = ({ customMessage, toPort, }) => {
89
89
  <a href="http://localhost:${toPort}" class="button">🎯 Go to New Server</a>
90
90
  <div class="footer">
91
91
  Powered by <strong>Nehonix</strong> for
92
- <a href="https://lab.nehonix.space" target="_blank">XyPrissJS</a>
92
+ <a href="https://lab.nehonix.com" target="_blank">XyPrissJS</a>
93
93
  </div>
94
94
  </div>
95
95
  </body>
@@ -129,7 +129,7 @@ const DEFAULT_OPTIONS = {
129
129
  },
130
130
  security: {
131
131
  enabled: true,
132
- level: "maximum",
132
+ level: "enhanced",
133
133
  csrf: true,
134
134
  helmet: true,
135
135
  sqlInjection: true,