xypriss 2.2.6 → 2.3.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.
- package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js +9 -5
- package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
- package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js +9 -5
- package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
- package/dist/cjs/mods/security/src/components/cache/index.js +9 -5
- package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -1
- package/dist/cjs/mods/security/src/components/fortified-function/index.js +8 -4
- package/dist/cjs/mods/security/src/components/fortified-function/index.js.map +1 -1
- package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js +9 -5
- package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
- package/dist/cjs/mods/security/src/index.js +9 -5
- package/dist/cjs/mods/security/src/index.js.map +1 -1
- package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js +87 -30
- package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +320 -0
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/CommandInjectionDetector.js +215 -0
- package/dist/cjs/src/middleware/built-in/security/CommandInjectionDetector.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/LDAPInjectionDetector.js +96 -0
- package/dist/cjs/src/middleware/built-in/security/LDAPInjectionDetector.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/PathTraversalDetector.js +212 -0
- package/dist/cjs/src/middleware/built-in/security/PathTraversalDetector.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/SQLInjectionDetector.js +335 -0
- package/dist/cjs/src/middleware/built-in/security/SQLInjectionDetector.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/XXEProtector.js +175 -0
- package/dist/cjs/src/middleware/built-in/security/XXEProtector.js.map +1 -0
- package/dist/cjs/src/middleware/security-middleware.js +249 -132
- package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
- package/dist/cjs/src/plugins/modules/index.js +8 -4
- package/dist/cjs/src/plugins/modules/index.js.map +1 -1
- package/dist/cjs/src/server/FastServer.js +49 -32
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/ServerFactory.js +34 -1
- package/dist/cjs/src/server/ServerFactory.js.map +1 -1
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js +11 -2
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js.map +1 -1
- package/dist/cjs/src/server/const/default.js +15 -1
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/esm/mods/security/src/algorithms/hash-algorithms.js +9 -5
- package/dist/esm/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +9 -5
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
- package/dist/esm/mods/security/src/components/cache/index.js +9 -5
- package/dist/esm/mods/security/src/components/cache/index.js.map +1 -1
- package/dist/esm/mods/security/src/components/fortified-function/index.js +8 -4
- package/dist/esm/mods/security/src/components/fortified-function/index.js.map +1 -1
- package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js +9 -5
- package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
- package/dist/esm/mods/security/src/index.js +9 -5
- package/dist/esm/mods/security/src/index.js.map +1 -1
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js +75 -18
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js.map +1 -1
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +318 -0
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/CommandInjectionDetector.js +213 -0
- package/dist/esm/src/middleware/built-in/security/CommandInjectionDetector.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/LDAPInjectionDetector.js +94 -0
- package/dist/esm/src/middleware/built-in/security/LDAPInjectionDetector.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/PathTraversalDetector.js +210 -0
- package/dist/esm/src/middleware/built-in/security/PathTraversalDetector.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/SQLInjectionDetector.js +333 -0
- package/dist/esm/src/middleware/built-in/security/SQLInjectionDetector.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/XXEProtector.js +173 -0
- package/dist/esm/src/middleware/built-in/security/XXEProtector.js.map +1 -0
- package/dist/esm/src/middleware/security-middleware.js +248 -131
- package/dist/esm/src/middleware/security-middleware.js.map +1 -1
- package/dist/esm/src/plugins/modules/index.js +8 -4
- package/dist/esm/src/plugins/modules/index.js.map +1 -1
- package/dist/esm/src/server/FastServer.js +50 -33
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/ServerFactory.js +34 -1
- package/dist/esm/src/server/ServerFactory.js.map +1 -1
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js +11 -2
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js.map +1 -1
- package/dist/esm/src/server/const/default.js +15 -1
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/index.d.ts +895 -39
- package/package.json +2 -2
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import helmet from 'helmet';
|
|
2
|
-
import cors from 'cors';
|
|
3
|
-
import rateLimit from 'express-rate-limit';
|
|
4
|
-
import { doubleCsrf } from 'csrf-csrf';
|
|
5
|
-
import mongoSanitize from 'express-mongo-sanitize';
|
|
6
|
-
import xss from 'xss';
|
|
7
|
-
import hpp from 'hpp';
|
|
8
|
-
import compression from 'compression';
|
|
9
1
|
import { XyPrissSecurity } from 'xypriss-security';
|
|
10
|
-
import SQLInjectionDetector from './built-in/
|
|
2
|
+
import SQLInjectionDetector from './built-in/security/SQLInjectionDetector.js';
|
|
3
|
+
import PathTraversalDetector from './built-in/security/PathTraversalDetector.js';
|
|
4
|
+
import CommandInjectionDetector from './built-in/security/CommandInjectionDetector.js';
|
|
5
|
+
import XXEProtector from './built-in/security/XXEProtector.js';
|
|
6
|
+
import LDAPInjectionDetector from './built-in/security/LDAPInjectionDetector.js';
|
|
11
7
|
import { Logger } from '../../shared/logger/Logger.js';
|
|
8
|
+
import { BuiltInMiddleware } from './built-in/BuiltInMiddleware.js';
|
|
9
|
+
import xss from 'xss';
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
12
|
* XyPriss Security Middleware
|
|
15
|
-
* Comprehensive security middleware using
|
|
13
|
+
* Comprehensive security middleware using BuiltInMiddleware as single source of truth
|
|
16
14
|
*/
|
|
17
15
|
/**
|
|
18
16
|
* Security middleware class implementing comprehensive protection
|
|
@@ -31,11 +29,22 @@ class SecurityMiddleware {
|
|
|
31
29
|
});
|
|
32
30
|
// Set defaults and merge with provided config
|
|
33
31
|
this.level = config.level || "enhanced";
|
|
34
|
-
this.csrf = config.csrf !== false;
|
|
35
|
-
this.helmet = config.helmet !== false;
|
|
36
|
-
this.xss = config.xss !== false;
|
|
37
|
-
this.sqlInjection = config.sqlInjection !== false;
|
|
38
|
-
this.
|
|
32
|
+
this.csrf = config.csrf !== false ? config.csrf || true : false;
|
|
33
|
+
this.helmet = config.helmet !== false ? config.helmet || true : false;
|
|
34
|
+
this.xss = config.xss !== false ? config.xss || true : false;
|
|
35
|
+
this.sqlInjection = config.sqlInjection !== false ? config.sqlInjection || true : false;
|
|
36
|
+
this.pathTraversal = config.pathTraversal !== false ? config.pathTraversal || false : false;
|
|
37
|
+
this.commandInjection = config.commandInjection !== false ? config.commandInjection || false : false;
|
|
38
|
+
this.xxe = config.xxe !== false ? config.xxe || false : false;
|
|
39
|
+
this.ldapInjection = config.ldapInjection !== false ? config.ldapInjection || false : false;
|
|
40
|
+
this.bruteForce = config.bruteForce !== false ? config.bruteForce || true : false;
|
|
41
|
+
this.rateLimit = config.rateLimit !== false ? config.rateLimit || true : false;
|
|
42
|
+
this.cors = config.cors !== false ? config.cors || true : false;
|
|
43
|
+
this.compression = config.compression !== false ? config.compression || true : false;
|
|
44
|
+
this.hpp = config.hpp !== false ? config.hpp || true : false;
|
|
45
|
+
this.mongoSanitize = config.mongoSanitize !== false ? config.mongoSanitize || true : false;
|
|
46
|
+
this.morgan = config.morgan !== false ? config.morgan || true : false;
|
|
47
|
+
this.slowDown = config.slowDown !== false ? config.slowDown || true : false;
|
|
39
48
|
this.encryption = {
|
|
40
49
|
algorithm: "AES-256-GCM",
|
|
41
50
|
keySize: 32,
|
|
@@ -71,21 +80,58 @@ class SecurityMiddleware {
|
|
|
71
80
|
};
|
|
72
81
|
// Initialize security detectors
|
|
73
82
|
this.sqlInjectionDetector = new SQLInjectionDetector({
|
|
74
|
-
strictMode: false,
|
|
75
|
-
contextualAnalysis: true,
|
|
76
|
-
logAttempts: true,
|
|
77
|
-
falsePositiveThreshold: 0.6,
|
|
83
|
+
strictMode: typeof this.sqlInjection === 'object' ? this.sqlInjection.strictMode : false,
|
|
84
|
+
contextualAnalysis: typeof this.sqlInjection === 'object' ? this.sqlInjection.contextualAnalysis : true,
|
|
85
|
+
logAttempts: typeof this.sqlInjection === 'object' ? this.sqlInjection.logAttempts : true,
|
|
86
|
+
falsePositiveThreshold: typeof this.sqlInjection === 'object' ? this.sqlInjection.falsePositiveThreshold : 0.6,
|
|
87
|
+
});
|
|
88
|
+
this.pathTraversalDetector = new PathTraversalDetector({
|
|
89
|
+
enabled: !!this.pathTraversal,
|
|
90
|
+
strictMode: typeof this.pathTraversal === 'object' ? this.pathTraversal.strictMode : false,
|
|
91
|
+
logAttempts: typeof this.pathTraversal === 'object' ? this.pathTraversal.logAttempts : true,
|
|
92
|
+
blockOnDetection: typeof this.pathTraversal === 'object' ? this.pathTraversal.blockOnDetection : true,
|
|
93
|
+
allowedPaths: typeof this.pathTraversal === 'object' ? this.pathTraversal.allowedPaths : [],
|
|
94
|
+
allowedExtensions: typeof this.pathTraversal === 'object' ? this.pathTraversal.allowedExtensions : ['.jpg', '.png', '.pdf', '.txt'],
|
|
95
|
+
maxDepth: typeof this.pathTraversal === 'object' ? this.pathTraversal.maxDepth : 3,
|
|
96
|
+
falsePositiveThreshold: typeof this.pathTraversal === 'object' ? this.pathTraversal.falsePositiveThreshold : 0.6,
|
|
97
|
+
});
|
|
98
|
+
this.commandInjectionDetector = new CommandInjectionDetector({
|
|
99
|
+
enabled: !!this.commandInjection,
|
|
100
|
+
strictMode: typeof this.commandInjection === 'object' ? this.commandInjection.strictMode : false,
|
|
101
|
+
logAttempts: typeof this.commandInjection === 'object' ? this.commandInjection.logAttempts : true,
|
|
102
|
+
blockOnDetection: typeof this.commandInjection === 'object' ? this.commandInjection.blockOnDetection : true,
|
|
103
|
+
contextualAnalysis: typeof this.commandInjection === 'object' ? this.commandInjection.contextualAnalysis : true,
|
|
104
|
+
allowedCommands: typeof this.commandInjection === 'object' ? this.commandInjection.allowedCommands : [],
|
|
105
|
+
falsePositiveThreshold: typeof this.commandInjection === 'object' ? this.commandInjection.falsePositiveThreshold : 0.7,
|
|
106
|
+
});
|
|
107
|
+
this.xxeProtector = new XXEProtector({
|
|
108
|
+
enabled: !!this.xxe,
|
|
109
|
+
strictMode: typeof this.xxe === 'object' ? this.xxe.strictMode : true,
|
|
110
|
+
logAttempts: typeof this.xxe === 'object' ? this.xxe.logAttempts : true,
|
|
111
|
+
blockOnDetection: typeof this.xxe === 'object' ? this.xxe.blockOnDetection : true,
|
|
112
|
+
allowDTD: typeof this.xxe === 'object' ? this.xxe.allowDTD : false,
|
|
113
|
+
allowExternalEntities: typeof this.xxe === 'object' ? this.xxe.allowExternalEntities : false,
|
|
114
|
+
maxEntityExpansions: typeof this.xxe === 'object' ? this.xxe.maxEntityExpansions : 0,
|
|
115
|
+
});
|
|
116
|
+
this.ldapInjectionDetector = new LDAPInjectionDetector({
|
|
117
|
+
enabled: !!this.ldapInjection,
|
|
118
|
+
strictMode: typeof this.ldapInjection === 'object' ? this.ldapInjection.strictMode : false,
|
|
119
|
+
logAttempts: typeof this.ldapInjection === 'object' ? this.ldapInjection.logAttempts : true,
|
|
120
|
+
blockOnDetection: typeof this.ldapInjection === 'object' ? this.ldapInjection.blockOnDetection : true,
|
|
121
|
+
falsePositiveThreshold: typeof this.ldapInjection === 'object' ? this.ldapInjection.falsePositiveThreshold : 0.6,
|
|
78
122
|
});
|
|
79
123
|
// Initialize all middleware instances
|
|
80
124
|
this.initializeMiddleware();
|
|
81
125
|
}
|
|
82
126
|
/**
|
|
83
|
-
* Initialize all security middleware instances using
|
|
127
|
+
* Initialize all security middleware instances using BuiltInMiddleware
|
|
128
|
+
* BuiltInMiddleware is the single source of truth for all middleware wrappers
|
|
84
129
|
*/
|
|
85
130
|
initializeMiddleware() {
|
|
86
131
|
// Helmet for security headers
|
|
87
132
|
if (this.helmet) {
|
|
88
|
-
this.
|
|
133
|
+
const helmetConfig = typeof this.helmet === "object" ? this.helmet : {};
|
|
134
|
+
this.helmetMiddleware = BuiltInMiddleware.helmet({
|
|
89
135
|
contentSecurityPolicy: this.level === "maximum"
|
|
90
136
|
? {
|
|
91
137
|
directives: {
|
|
@@ -95,102 +141,122 @@ class SecurityMiddleware {
|
|
|
95
141
|
imgSrc: ["'self'", "data:", "https:"],
|
|
96
142
|
},
|
|
97
143
|
}
|
|
98
|
-
:
|
|
99
|
-
|
|
144
|
+
: helmetConfig.contentSecurityPolicy
|
|
145
|
+
? helmetConfig.contentSecurityPolicy
|
|
146
|
+
: false,
|
|
147
|
+
hsts: this.level !== "basic" || helmetConfig.hsts ? helmetConfig.hsts : undefined,
|
|
100
148
|
crossOriginEmbedderPolicy: this.level === "maximum",
|
|
101
149
|
});
|
|
102
150
|
}
|
|
103
|
-
// CORS middleware
|
|
104
|
-
this.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
151
|
+
// CORS middleware - use config if provided, otherwise use defaults
|
|
152
|
+
if (this.cors !== false) {
|
|
153
|
+
const corsConfig = typeof this.cors === "object"
|
|
154
|
+
? this.cors
|
|
155
|
+
: {
|
|
156
|
+
origin: this.level === "maximum" ? false : true,
|
|
157
|
+
credentials: true,
|
|
158
|
+
optionsSuccessStatus: 200,
|
|
159
|
+
};
|
|
160
|
+
this.logger.debug("security", `Initializing CORS with config: ${JSON.stringify(corsConfig)}`);
|
|
161
|
+
this.corsMiddleware = BuiltInMiddleware.cors(corsConfig);
|
|
162
|
+
}
|
|
163
|
+
// Rate limiting for brute force protection (stricter limits)
|
|
110
164
|
if (this.bruteForce) {
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
?
|
|
115
|
-
:
|
|
116
|
-
|
|
117
|
-
|
|
165
|
+
const rateLimitConfig = typeof this.bruteForce === "object" ? this.bruteForce : {};
|
|
166
|
+
rateLimitConfig.max ||
|
|
167
|
+
(this.level === "maximum"
|
|
168
|
+
? 50
|
|
169
|
+
: this.level === "enhanced"
|
|
170
|
+
? 100
|
|
171
|
+
: 200);
|
|
172
|
+
this.bruteForceMiddleware = BuiltInMiddleware.brute();
|
|
173
|
+
}
|
|
174
|
+
// General rate limiting (separate from brute force protection)
|
|
175
|
+
if (this.rateLimit) {
|
|
176
|
+
const rateLimitConfig = typeof this.rateLimit === "object" ? this.rateLimit : {};
|
|
177
|
+
const maxRequests = rateLimitConfig.max || 100; // Default 100 requests
|
|
178
|
+
this.rateLimitMiddleware = BuiltInMiddleware.rateLimit({
|
|
179
|
+
windowMs: rateLimitConfig.windowMs || 15 * 60 * 1000, // 15 minutes
|
|
118
180
|
max: maxRequests,
|
|
119
|
-
message: {
|
|
120
|
-
error: "Too many requests
|
|
181
|
+
message: rateLimitConfig.message || {
|
|
182
|
+
error: "Too many requests, please try again later.",
|
|
121
183
|
retryAfter: "15 minutes",
|
|
122
184
|
},
|
|
123
|
-
standardHeaders:
|
|
185
|
+
standardHeaders: rateLimitConfig.standardHeaders !== false,
|
|
124
186
|
legacyHeaders: false,
|
|
125
187
|
skip: (req) => {
|
|
126
|
-
// Skip rate limiting for health checks
|
|
127
|
-
return req.path === "/health" || req.path === "/ping"
|
|
188
|
+
// Skip rate limiting for health checks and static assets
|
|
189
|
+
return req.path === "/health" || req.path === "/ping" ||
|
|
190
|
+
req.path.startsWith("/static/") || req.path.startsWith("/assets/");
|
|
128
191
|
},
|
|
129
192
|
});
|
|
193
|
+
this.logger.debug("security", `General rate limiting initialized with max: ${maxRequests} requests`);
|
|
130
194
|
}
|
|
131
|
-
// CSRF protection using
|
|
195
|
+
// CSRF protection using BuiltInMiddleware
|
|
132
196
|
if (this.csrf) {
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
197
|
+
const csrfConfig = typeof this.csrf === "object" ? this.csrf : {};
|
|
198
|
+
this.csrfMiddleware = BuiltInMiddleware.csrf({
|
|
199
|
+
getSecret: (req) => this.authentication.session?.secret ||
|
|
200
|
+
"ac934dfcffc9e037b6921b6d4e874e788bfba7c5f48d17332ef92c9c67450000",
|
|
201
|
+
getSessionIdentifier: (req) => req.session?.id,
|
|
202
|
+
cookieName: csrfConfig.cookieName || "__Host-csrf-token",
|
|
137
203
|
cookieOptions: {
|
|
138
204
|
httpOnly: true,
|
|
139
205
|
sameSite: "strict",
|
|
140
206
|
secure: process.env.NODE_ENV === "production",
|
|
141
207
|
maxAge: 24 * 60 * 60 * 1000, // 24 hours
|
|
208
|
+
...(csrfConfig.cookieOptions || {}),
|
|
142
209
|
},
|
|
143
|
-
size: 64,
|
|
144
|
-
ignoredMethods: ["GET", "HEAD", "OPTIONS"],
|
|
145
210
|
});
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
};
|
|
211
|
+
}
|
|
212
|
+
// Compression middleware
|
|
213
|
+
if (this.compression) {
|
|
214
|
+
const compressionConfig = typeof this.compression === "object" ? this.compression : {};
|
|
215
|
+
this.compressionMiddleware = BuiltInMiddleware.compression({
|
|
216
|
+
level: compressionConfig.level || 6,
|
|
217
|
+
threshold: compressionConfig.threshold || 1024,
|
|
218
|
+
filter: compressionConfig.filter,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
// HTTP Parameter Pollution protection
|
|
222
|
+
if (this.hpp) {
|
|
223
|
+
const hppConfig = typeof this.hpp === "object" ? this.hpp : {};
|
|
224
|
+
this.hppMiddleware = BuiltInMiddleware.hpp({
|
|
225
|
+
whitelist: hppConfig.whitelist || ["tags", "categories"],
|
|
226
|
+
checkQuery: hppConfig.checkQuery !== false,
|
|
227
|
+
checkBody: hppConfig.checkBody !== false,
|
|
228
|
+
});
|
|
155
229
|
}
|
|
156
230
|
// MongoDB injection protection
|
|
157
|
-
if (this.
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
231
|
+
if (this.mongoSanitize) {
|
|
232
|
+
const mongoConfig = typeof this.mongoSanitize === "object" ? this.mongoSanitize : {};
|
|
233
|
+
this.mongoSanitizeMiddleware = BuiltInMiddleware.mongoSanitize({
|
|
234
|
+
replaceWith: mongoConfig.replaceWith || "_",
|
|
235
|
+
onSanitize: mongoConfig.onSanitize || (({ req, key }) => {
|
|
161
236
|
console.warn(`Sanitized key ${key} in request from ${req.ip}`);
|
|
162
|
-
},
|
|
237
|
+
}),
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
// Morgan logging middleware
|
|
241
|
+
if (this.morgan) {
|
|
242
|
+
const morganConfig = typeof this.morgan === "object" ? this.morgan : {};
|
|
243
|
+
this.morganMiddleware = BuiltInMiddleware.morgan({
|
|
244
|
+
skip: morganConfig.skip || ((req, res) => res.statusCode < 400),
|
|
245
|
+
stream: morganConfig.stream,
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
// Slow down middleware for rate limiting
|
|
249
|
+
if (this.slowDown) {
|
|
250
|
+
const slowDownConfig = typeof this.slowDown === "object" ? this.slowDown : {};
|
|
251
|
+
this.slowDownMiddleware = BuiltInMiddleware.slowDown({
|
|
252
|
+
windowMs: slowDownConfig.windowMs || 15 * 60 * 1000, // 15 minutes
|
|
253
|
+
delayAfter: slowDownConfig.delayAfter || 100,
|
|
254
|
+
delayMs: slowDownConfig.delayMs || ((used, req) => {
|
|
255
|
+
const delayAfter = req.slowDown?.limit || 100;
|
|
256
|
+
return (used - delayAfter) * 500;
|
|
257
|
+
}),
|
|
163
258
|
});
|
|
164
|
-
// Create a wrapper that handles readonly properties
|
|
165
|
-
this.mongoSanitizeMiddleware = (req, res, next) => {
|
|
166
|
-
// Make request properties writable before sanitization
|
|
167
|
-
this.makeRequestPropertiesWritable(req);
|
|
168
|
-
// Call the original middleware
|
|
169
|
-
originalMongoSanitize(req, res, next);
|
|
170
|
-
};
|
|
171
259
|
}
|
|
172
|
-
// HTTP Parameter Pollution protection
|
|
173
|
-
const originalHpp = hpp({
|
|
174
|
-
whitelist: ["tags", "categories"], // Allow arrays for specific parameters
|
|
175
|
-
});
|
|
176
|
-
// Create a wrapper that handles readonly properties
|
|
177
|
-
this.hppMiddleware = (req, res, next) => {
|
|
178
|
-
// Make request properties writable before processing
|
|
179
|
-
this.makeRequestPropertiesWritable(req);
|
|
180
|
-
// Call the original middleware
|
|
181
|
-
originalHpp(req, res, next);
|
|
182
|
-
};
|
|
183
|
-
// Compression middleware
|
|
184
|
-
this.compressionMiddleware = compression({
|
|
185
|
-
filter: (req, res) => {
|
|
186
|
-
if (req.headers["x-no-compression"]) {
|
|
187
|
-
return false;
|
|
188
|
-
}
|
|
189
|
-
return compression.filter(req, res);
|
|
190
|
-
},
|
|
191
|
-
level: 6,
|
|
192
|
-
threshold: 1024,
|
|
193
|
-
});
|
|
194
260
|
}
|
|
195
261
|
/**
|
|
196
262
|
* Get the main security middleware stack
|
|
@@ -208,35 +274,56 @@ class SecurityMiddleware {
|
|
|
208
274
|
this.logger.debug("security", "Starting security middleware stack");
|
|
209
275
|
const middlewareStack = [];
|
|
210
276
|
// 1. Compression (should be first)
|
|
211
|
-
this.
|
|
212
|
-
|
|
277
|
+
if (this.compression && this.compressionMiddleware) {
|
|
278
|
+
this.logger.debug("security", "Adding compression middleware");
|
|
279
|
+
middlewareStack.push(this.compressionMiddleware);
|
|
280
|
+
}
|
|
213
281
|
// 2. Security headers (Helmet)
|
|
214
282
|
if (this.helmet && this.helmetMiddleware) {
|
|
215
283
|
this.logger.debug("security", "Adding helmet middleware");
|
|
216
284
|
middlewareStack.push(this.helmetMiddleware);
|
|
217
285
|
}
|
|
218
286
|
// 3. CORS
|
|
219
|
-
this.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
287
|
+
if (this.cors !== false && this.corsMiddleware) {
|
|
288
|
+
this.logger.debug("security", "Adding CORS middleware");
|
|
289
|
+
middlewareStack.push(this.corsMiddleware);
|
|
290
|
+
}
|
|
291
|
+
// 4. Rate limiting (brute force protection - stricter)
|
|
292
|
+
if (this.bruteForce && this.bruteForceMiddleware) {
|
|
293
|
+
this.logger.debug("security", "Adding brute force protection middleware");
|
|
294
|
+
middlewareStack.push(this.bruteForceMiddleware);
|
|
295
|
+
}
|
|
296
|
+
// 5. General rate limiting (less strict)
|
|
297
|
+
if (this.rateLimit && this.rateLimitMiddleware) {
|
|
298
|
+
this.logger.debug("security", "Adding general rate limiting middleware");
|
|
224
299
|
middlewareStack.push(this.rateLimitMiddleware);
|
|
225
300
|
}
|
|
226
|
-
//
|
|
227
|
-
this.
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
301
|
+
// 6. HTTP Parameter Pollution protection
|
|
302
|
+
if (this.hpp && this.hppMiddleware) {
|
|
303
|
+
this.logger.debug("security", "Adding HPP middleware");
|
|
304
|
+
middlewareStack.push(this.hppMiddleware);
|
|
305
|
+
}
|
|
306
|
+
// 7. MongoDB sanitization
|
|
307
|
+
if (this.mongoSanitize && this.mongoSanitizeMiddleware) {
|
|
231
308
|
this.logger.debug("security", "Adding mongo sanitize middleware");
|
|
232
309
|
middlewareStack.push(this.mongoSanitizeMiddleware);
|
|
233
310
|
}
|
|
234
|
-
//
|
|
311
|
+
// 8. Morgan logging
|
|
312
|
+
if (this.morgan && this.morganMiddleware) {
|
|
313
|
+
this.logger.debug("security", "Adding morgan middleware");
|
|
314
|
+
middlewareStack.push(this.morganMiddleware);
|
|
315
|
+
}
|
|
316
|
+
// 9. Slow down middleware
|
|
317
|
+
if (this.slowDown && this.slowDownMiddleware) {
|
|
318
|
+
this.logger.debug("security", "Adding slow down middleware");
|
|
319
|
+
middlewareStack.push(this.slowDownMiddleware);
|
|
320
|
+
}
|
|
321
|
+
// 10. XSS protection (custom implementation)
|
|
235
322
|
if (this.xss) {
|
|
236
323
|
this.logger.debug("security", "Adding XSS protection middleware");
|
|
237
324
|
middlewareStack.push(this.xssProtection.bind(this));
|
|
238
325
|
}
|
|
239
|
-
//
|
|
326
|
+
// 11. CSRF protection (should be after body parsing)
|
|
240
327
|
if (this.csrf && this.csrfMiddleware) {
|
|
241
328
|
this.logger.debug("security", "Adding CSRF middleware");
|
|
242
329
|
middlewareStack.push(this.csrfMiddleware);
|
|
@@ -380,31 +467,6 @@ class SecurityMiddleware {
|
|
|
380
467
|
}
|
|
381
468
|
next();
|
|
382
469
|
}
|
|
383
|
-
/**
|
|
384
|
-
* Make request properties writable to avoid readonly property errors
|
|
385
|
-
*/
|
|
386
|
-
makeRequestPropertiesWritable(req) {
|
|
387
|
-
const properties = ["body", "params", "headers", "query"];
|
|
388
|
-
properties.forEach((prop) => {
|
|
389
|
-
if (req[prop] !== undefined) {
|
|
390
|
-
try {
|
|
391
|
-
// Test if property is writable
|
|
392
|
-
const original = req[prop];
|
|
393
|
-
req[prop] = original;
|
|
394
|
-
}
|
|
395
|
-
catch (error) {
|
|
396
|
-
// Property is readonly, make it writable
|
|
397
|
-
const value = req[prop];
|
|
398
|
-
Object.defineProperty(req, prop, {
|
|
399
|
-
value: value,
|
|
400
|
-
writable: true,
|
|
401
|
-
configurable: true,
|
|
402
|
-
enumerable: true,
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
470
|
/**
|
|
409
471
|
* Recursively sanitize object properties
|
|
410
472
|
*/
|
|
@@ -452,6 +514,50 @@ class SecurityMiddleware {
|
|
|
452
514
|
}
|
|
453
515
|
}
|
|
454
516
|
}
|
|
517
|
+
// Path Traversal Detection
|
|
518
|
+
if (this.pathTraversal) {
|
|
519
|
+
const pathResult = this.pathTraversalDetector.detect(original);
|
|
520
|
+
if (pathResult.isMalicious) {
|
|
521
|
+
threatDetected = true;
|
|
522
|
+
detectedPatterns.push(`Path Traversal (${pathResult.riskLevel})`);
|
|
523
|
+
if (pathResult.sanitizedInput) {
|
|
524
|
+
sanitized = pathResult.sanitizedInput;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
// Command Injection Detection
|
|
529
|
+
if (this.commandInjection) {
|
|
530
|
+
const cmdResult = this.commandInjectionDetector.detect(original);
|
|
531
|
+
if (cmdResult.isMalicious) {
|
|
532
|
+
threatDetected = true;
|
|
533
|
+
detectedPatterns.push(`Command Injection (${cmdResult.riskLevel})`);
|
|
534
|
+
if (cmdResult.sanitizedInput) {
|
|
535
|
+
sanitized = cmdResult.sanitizedInput;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
// XXE Detection (for XML content)
|
|
540
|
+
if (this.xxe && (original.includes('<?xml') || original.includes('<!DOCTYPE'))) {
|
|
541
|
+
const xxeResult = this.xxeProtector.detect(original);
|
|
542
|
+
if (xxeResult.isMalicious) {
|
|
543
|
+
threatDetected = true;
|
|
544
|
+
detectedPatterns.push(`XXE Attack (${xxeResult.riskLevel})`);
|
|
545
|
+
if (xxeResult.sanitizedInput) {
|
|
546
|
+
sanitized = xxeResult.sanitizedInput;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
// LDAP Injection Detection
|
|
551
|
+
if (this.ldapInjection) {
|
|
552
|
+
const ldapResult = this.ldapInjectionDetector.detect(original);
|
|
553
|
+
if (ldapResult.isMalicious) {
|
|
554
|
+
threatDetected = true;
|
|
555
|
+
detectedPatterns.push(`LDAP Injection (${ldapResult.riskLevel})`);
|
|
556
|
+
if (ldapResult.sanitizedInput) {
|
|
557
|
+
sanitized = ldapResult.sanitizedInput;
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
}
|
|
455
561
|
// Additional threat detection for patterns XSS library might miss
|
|
456
562
|
const additionalThreats = [
|
|
457
563
|
/javascript:/i,
|
|
@@ -517,7 +623,18 @@ class SecurityMiddleware {
|
|
|
517
623
|
helmet: this.helmet,
|
|
518
624
|
xss: this.xss,
|
|
519
625
|
sqlInjection: this.sqlInjection,
|
|
626
|
+
pathTraversal: this.pathTraversal,
|
|
627
|
+
commandInjection: this.commandInjection,
|
|
628
|
+
xxe: this.xxe,
|
|
629
|
+
ldapInjection: this.ldapInjection,
|
|
520
630
|
bruteForce: this.bruteForce,
|
|
631
|
+
rateLimit: this.rateLimit,
|
|
632
|
+
cors: this.cors,
|
|
633
|
+
compression: this.compression,
|
|
634
|
+
hpp: this.hpp,
|
|
635
|
+
mongoSanitize: this.mongoSanitize,
|
|
636
|
+
morgan: this.morgan,
|
|
637
|
+
slowDown: this.slowDown,
|
|
521
638
|
encryption: this.encryption,
|
|
522
639
|
authentication: this.authentication,
|
|
523
640
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["XyPrissJS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["XyPrissJS"],"mappings":"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"}
|
|
@@ -40,15 +40,19 @@ import '../../../mods/security/src/core/keys/keys-types.js';
|
|
|
40
40
|
import '../../../mods/security/src/core/keys/keys-logger.js';
|
|
41
41
|
import '../../../mods/security/src/core/keys/keys-utils.js';
|
|
42
42
|
import '../../../mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js';
|
|
43
|
+
import 'xypriss-security';
|
|
43
44
|
import 'helmet';
|
|
44
45
|
import 'cors';
|
|
45
46
|
import 'express-rate-limit';
|
|
46
|
-
import '
|
|
47
|
+
import 'compression';
|
|
48
|
+
import 'hpp';
|
|
47
49
|
import 'express-mongo-sanitize';
|
|
48
50
|
import 'xss';
|
|
49
|
-
import '
|
|
50
|
-
import '
|
|
51
|
-
import '
|
|
51
|
+
import 'morgan';
|
|
52
|
+
import 'express-slow-down';
|
|
53
|
+
import 'express-brute';
|
|
54
|
+
import 'multer';
|
|
55
|
+
import 'csrf-csrf';
|
|
52
56
|
import '../../../mods/security/src/core/password/index.js';
|
|
53
57
|
import 'systeminformation';
|
|
54
58
|
import 'pidusage';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/plugins/modules/index.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/plugins/modules/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|