xypriss 3.1.0 → 3.2.1
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/src/middleware/XyPrissMiddlewareAPI.js +3 -2
- package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +16 -23
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/security/MobileOnlyProtector.js +504 -0
- package/dist/cjs/src/middleware/built-in/security/MobileOnlyProtector.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js +20 -4
- package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -1
- package/dist/cjs/src/middleware/security-middleware.js +114 -19
- package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
- package/dist/cjs/src/server/const/default.js +43 -5
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js +3 -2
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js.map +1 -1
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +16 -23
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
- package/dist/esm/src/middleware/built-in/security/MobileOnlyProtector.js +502 -0
- package/dist/esm/src/middleware/built-in/security/MobileOnlyProtector.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js +20 -4
- package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -1
- package/dist/esm/src/middleware/security-middleware.js +114 -19
- package/dist/esm/src/middleware/security-middleware.js.map +1 -1
- package/dist/esm/src/server/const/default.js +43 -5
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/index.d.ts +174 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuiltInMiddleware.js","sources":["../../../../../src/middleware/built-in/BuiltInMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BuiltInMiddleware.js","sources":["../../../../../src/middleware/built-in/BuiltInMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
import { Logger } from '../../../../shared/logger/Logger.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Mobile-Only Access Protector
|
|
5
|
+
* Blocks browser requests and allows only mobile app access.
|
|
6
|
+
* Multi-layered detection with strict validation to avoid false positives.
|
|
7
|
+
*
|
|
8
|
+
* @example Enable with defaults:
|
|
9
|
+
* ```typescript
|
|
10
|
+
* mobileOnly: true
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @example Custom configuration:
|
|
14
|
+
* ```typescript
|
|
15
|
+
* mobileOnly: {
|
|
16
|
+
* blockBrowserIndicators: true,
|
|
17
|
+
* allowedPlatforms: ['ios', 'android'],
|
|
18
|
+
* requireMobileHeaders: true,
|
|
19
|
+
* customUserAgentPatterns: [/MyApp/i],
|
|
20
|
+
* errorMessage: "Mobile app access required"
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
class MobileOnlyProtector {
|
|
25
|
+
constructor(config = {}, logger) {
|
|
26
|
+
// Mobile platform indicators
|
|
27
|
+
this.mobilePatterns = [
|
|
28
|
+
/\bAndroid\b/i,
|
|
29
|
+
/\biPhone\b/i,
|
|
30
|
+
/\biPad\b/i,
|
|
31
|
+
/\biPod\b/i,
|
|
32
|
+
/\bBlackBerry\b/i,
|
|
33
|
+
/\bWindows Phone\b/i,
|
|
34
|
+
/\bReactNative\b/i,
|
|
35
|
+
/\bExpo\b/i,
|
|
36
|
+
/\bDalvik\b/i, // Android runtime
|
|
37
|
+
];
|
|
38
|
+
// Android HTTP clients
|
|
39
|
+
this.androidHttpClients = [
|
|
40
|
+
/\bokhttp\b/i, // OkHttp
|
|
41
|
+
/\bretrofit\b/i, // Retrofit
|
|
42
|
+
/\bktor-client\b/i, // Ktor Client
|
|
43
|
+
/\bktor\b/i, // Ktor (short form)
|
|
44
|
+
/\bvolley\b/i, // Volley
|
|
45
|
+
/\bHttpUrlConnection\b/i, // HttpUrlConnection
|
|
46
|
+
/\bAndroidHttpClient\b/i, // Generic Android HTTP
|
|
47
|
+
];
|
|
48
|
+
// iOS HTTP clients
|
|
49
|
+
this.iosHttpClients = [
|
|
50
|
+
/\bAlamofire\b/i, // Alamofire
|
|
51
|
+
/\bAFNetworking\b/i, // AFNetworking
|
|
52
|
+
/\bCFNetwork\b/i, // CFNetwork (iOS networking framework)
|
|
53
|
+
/\bURLSession\b/i, // URLSession
|
|
54
|
+
/\bNSURLSession\b/i, // NSURLSession (Objective-C)
|
|
55
|
+
/\bMoya\b/i, // Moya
|
|
56
|
+
/\bSiesta\b/i, // Siesta
|
|
57
|
+
];
|
|
58
|
+
// Cross-platform mobile frameworks
|
|
59
|
+
this.mobileFameworks = [
|
|
60
|
+
/\bFlutter\b/i,
|
|
61
|
+
/\bDart\b/i, // Dart (Flutter's language)
|
|
62
|
+
/\bReact Native\b/i,
|
|
63
|
+
/\bReactNative\b/i,
|
|
64
|
+
/\bExpo\b/i,
|
|
65
|
+
/\bCapacitor\b/i, // Ionic Capacitor
|
|
66
|
+
/\bCordova\b/i, // Apache Cordova
|
|
67
|
+
/\bIonic\b/i, // Ionic Framework
|
|
68
|
+
/\bXamarin\b/i, // Xamarin
|
|
69
|
+
];
|
|
70
|
+
// Comprehensive browser indicators (aggressive detection)
|
|
71
|
+
this.browserIndicators = [
|
|
72
|
+
/\bMozilla\b/i,
|
|
73
|
+
/\bChrome\b/i,
|
|
74
|
+
/\bChromium\b/i,
|
|
75
|
+
/\bSafari\b/i,
|
|
76
|
+
/\bFirefox\b/i,
|
|
77
|
+
/\bEdge\b/i,
|
|
78
|
+
/\bEdg\b/i,
|
|
79
|
+
/\bOpera\b/i,
|
|
80
|
+
/\bOPR\b/i,
|
|
81
|
+
/\bBrave\b/i,
|
|
82
|
+
/\bVivaldi\b/i,
|
|
83
|
+
/\bSeaMonkey\b/i,
|
|
84
|
+
/\bIceweasel\b/i,
|
|
85
|
+
/\bEpiphany\b/i,
|
|
86
|
+
/\bMidori\b/i,
|
|
87
|
+
/\bKonqueror\b/i,
|
|
88
|
+
/\bWebKit\b/i,
|
|
89
|
+
/\bGecko\b/i,
|
|
90
|
+
/\bTrident\b/i,
|
|
91
|
+
/\bPresto\b/i,
|
|
92
|
+
/\bEdgeHTML\b/i,
|
|
93
|
+
/\bNetscape\b/i,
|
|
94
|
+
/\bIE\b/i,
|
|
95
|
+
/\bMSIE\b/i,
|
|
96
|
+
/\brv:11/i, // IE11
|
|
97
|
+
/\bElectron\b/i, // Desktop apps
|
|
98
|
+
/\bPhantomJS\b/i, // Headless browser
|
|
99
|
+
/\bHeadlessChrome\b/i,
|
|
100
|
+
];
|
|
101
|
+
// Known desktop OS indicators
|
|
102
|
+
this.desktopIndicators = [
|
|
103
|
+
/\bWindows NT\b/i,
|
|
104
|
+
/\bMac OS X\b/i,
|
|
105
|
+
/\bMacintosh\b/i,
|
|
106
|
+
/\bLinux x86_64\b/i,
|
|
107
|
+
/\bLinux i686\b/i,
|
|
108
|
+
/\bX11\b/i,
|
|
109
|
+
/\bWin64\b/i,
|
|
110
|
+
/\bWOW64\b/i,
|
|
111
|
+
/\bUbuntu\b/i,
|
|
112
|
+
/\bFedora\b/i,
|
|
113
|
+
/\bDebian\b/i,
|
|
114
|
+
];
|
|
115
|
+
// Suspicious patterns often used in spoofing (excluding legitimate mobile clients)
|
|
116
|
+
this.suspiciousPatterns = [
|
|
117
|
+
/\bcurl\b/i,
|
|
118
|
+
/\bwget\b/i,
|
|
119
|
+
/\bPython\b/i,
|
|
120
|
+
/\bJava(?!Script)\b/i, // Java but not JavaScript
|
|
121
|
+
/\bperl\b/i,
|
|
122
|
+
/\bruby\b/i,
|
|
123
|
+
/\bPostman\b/i,
|
|
124
|
+
/\bInsomnia\b/i,
|
|
125
|
+
/\bHTTPie\b/i,
|
|
126
|
+
/\baxios\b/i,
|
|
127
|
+
/\bnode-fetch\b/i,
|
|
128
|
+
/\bgot\b/i,
|
|
129
|
+
/\bsuperagent\b/i,
|
|
130
|
+
/\brequest\b/i,
|
|
131
|
+
/\bbot\b/i,
|
|
132
|
+
/\bcrawler\b/i,
|
|
133
|
+
/\bspider\b/i,
|
|
134
|
+
/\bscraper\b/i,
|
|
135
|
+
];
|
|
136
|
+
// Mobile-specific headers that indicate app requests
|
|
137
|
+
this.mobileHeaders = [
|
|
138
|
+
"x-requested-with",
|
|
139
|
+
"x-mobile-app",
|
|
140
|
+
"x-app-platform",
|
|
141
|
+
"x-app-version",
|
|
142
|
+
"expo-version",
|
|
143
|
+
"react-native-version",
|
|
144
|
+
"x-flutter-version",
|
|
145
|
+
"x-ios-bundle-identifier",
|
|
146
|
+
"x-android-package",
|
|
147
|
+
];
|
|
148
|
+
this.config = {
|
|
149
|
+
enable: config.enable ?? true,
|
|
150
|
+
blockBrowserIndicators: config.blockBrowserIndicators ?? true,
|
|
151
|
+
allowedPlatforms: config.allowedPlatforms ?? [
|
|
152
|
+
"ios",
|
|
153
|
+
"android",
|
|
154
|
+
"react-native",
|
|
155
|
+
"expo",
|
|
156
|
+
],
|
|
157
|
+
requireMobileHeaders: config.requireMobileHeaders ?? false,
|
|
158
|
+
customUserAgentPatterns: config.customUserAgentPatterns ?? [],
|
|
159
|
+
debug: config.debug ?? false,
|
|
160
|
+
errorMessage: config.errorMessage ??
|
|
161
|
+
"Mobile app access required. Browser requests are not allowed.",
|
|
162
|
+
statusCode: config.statusCode ?? 403,
|
|
163
|
+
caseSensitive: config.caseSensitive ?? false,
|
|
164
|
+
trimUserAgent: config.trimUserAgent ?? true,
|
|
165
|
+
};
|
|
166
|
+
this.logger =
|
|
167
|
+
logger ||
|
|
168
|
+
new Logger({
|
|
169
|
+
components: { security: true },
|
|
170
|
+
types: { debug: true },
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Normalize User-Agent string
|
|
175
|
+
*/
|
|
176
|
+
normalizeUserAgent(userAgent) {
|
|
177
|
+
if (!userAgent)
|
|
178
|
+
return "";
|
|
179
|
+
let normalized = userAgent;
|
|
180
|
+
if (this.config.trimUserAgent) {
|
|
181
|
+
normalized = normalized.trim();
|
|
182
|
+
}
|
|
183
|
+
// Remove excessive whitespace
|
|
184
|
+
normalized = normalized.replace(/\s+/g, " ");
|
|
185
|
+
return normalized;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Check for Android HTTP client indicators
|
|
189
|
+
*/
|
|
190
|
+
hasAndroidHttpClient(userAgent) {
|
|
191
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
192
|
+
return this.androidHttpClients.some((pattern) => {
|
|
193
|
+
const regex = new RegExp(pattern.source, flags);
|
|
194
|
+
return regex.test(userAgent);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Check for iOS HTTP client indicators
|
|
199
|
+
*/
|
|
200
|
+
hasIosHttpClient(userAgent) {
|
|
201
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
202
|
+
return this.iosHttpClients.some((pattern) => {
|
|
203
|
+
const regex = new RegExp(pattern.source, flags);
|
|
204
|
+
return regex.test(userAgent);
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Check for mobile framework indicators
|
|
209
|
+
*/
|
|
210
|
+
hasMobileFramework(userAgent) {
|
|
211
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
212
|
+
return this.mobileFameworks.some((pattern) => {
|
|
213
|
+
const regex = new RegExp(pattern.source, flags);
|
|
214
|
+
return regex.test(userAgent);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check for browser indicators in User-Agent
|
|
219
|
+
*/
|
|
220
|
+
hasBrowserIndicators(userAgent) {
|
|
221
|
+
if (!this.config.blockBrowserIndicators) {
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
225
|
+
return this.browserIndicators.some((pattern) => {
|
|
226
|
+
const regex = new RegExp(pattern.source, flags);
|
|
227
|
+
return regex.test(userAgent);
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Check for desktop OS indicators
|
|
232
|
+
*/
|
|
233
|
+
hasDesktopIndicators(userAgent) {
|
|
234
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
235
|
+
return this.desktopIndicators.some((pattern) => {
|
|
236
|
+
const regex = new RegExp(pattern.source, flags);
|
|
237
|
+
return regex.test(userAgent);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Check for suspicious patterns (bots, tools, spoofing attempts)
|
|
242
|
+
*/
|
|
243
|
+
hasSuspiciousPatterns(userAgent) {
|
|
244
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
245
|
+
return this.suspiciousPatterns.some((pattern) => {
|
|
246
|
+
const regex = new RegExp(pattern.source, flags);
|
|
247
|
+
return regex.test(userAgent);
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Check if User-Agent matches custom patterns
|
|
252
|
+
*/
|
|
253
|
+
matchesCustomPatterns(userAgent) {
|
|
254
|
+
if (this.config.customUserAgentPatterns.length === 0) {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
258
|
+
for (const pattern of this.config.customUserAgentPatterns) {
|
|
259
|
+
try {
|
|
260
|
+
const regex = new RegExp(pattern.source, flags);
|
|
261
|
+
if (regex.test(userAgent)) {
|
|
262
|
+
if (this.config.debug) {
|
|
263
|
+
this.logger.debug("security", `Custom pattern matched: ${pattern}`);
|
|
264
|
+
}
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
this.logger.warn("security", `Invalid custom pattern: ${pattern}`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Check if User-Agent indicates allowed mobile platform
|
|
276
|
+
*/
|
|
277
|
+
hasAllowedPlatform(userAgent) {
|
|
278
|
+
return this.config.allowedPlatforms.some((platform) => {
|
|
279
|
+
switch (platform) {
|
|
280
|
+
case "ios":
|
|
281
|
+
// iOS detection: iOS devices OR iOS HTTP clients (without desktop indicators)
|
|
282
|
+
return ((/\b(iPhone|iPad|iPod)\b/i.test(userAgent) ||
|
|
283
|
+
this.hasIosHttpClient(userAgent)) &&
|
|
284
|
+
!/\b(Macintosh|Mac OS X)\b/i.test(userAgent));
|
|
285
|
+
case "android":
|
|
286
|
+
// Android detection: Android OS OR Android HTTP clients (without desktop emulator)
|
|
287
|
+
return ((/\bAndroid\b/i.test(userAgent) ||
|
|
288
|
+
/\bDalvik\b/i.test(userAgent) ||
|
|
289
|
+
this.hasAndroidHttpClient(userAgent)) &&
|
|
290
|
+
!/\b(X11|Linux x86_64)\b/i.test(userAgent));
|
|
291
|
+
case "react-native":
|
|
292
|
+
return /\b(ReactNative|React Native)\b/i.test(userAgent);
|
|
293
|
+
case "expo":
|
|
294
|
+
return /\bExpo\b/i.test(userAgent);
|
|
295
|
+
case "flutter":
|
|
296
|
+
return /\b(Flutter|Dart)\b/i.test(userAgent);
|
|
297
|
+
default:
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Check for mobile-specific patterns
|
|
304
|
+
*/
|
|
305
|
+
hasMobilePatterns(userAgent) {
|
|
306
|
+
const flags = this.config.caseSensitive ? "g" : "gi";
|
|
307
|
+
return this.mobilePatterns.some((pattern) => {
|
|
308
|
+
const regex = new RegExp(pattern.source, flags);
|
|
309
|
+
return regex.test(userAgent);
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Check for mobile-specific headers
|
|
314
|
+
*/
|
|
315
|
+
hasMobileHeaders(req) {
|
|
316
|
+
if (!req.headers) {
|
|
317
|
+
return false;
|
|
318
|
+
}
|
|
319
|
+
return this.mobileHeaders.some((header) => {
|
|
320
|
+
const lowerHeader = header.toLowerCase();
|
|
321
|
+
// Check both original case and lowercase
|
|
322
|
+
return req.headers[header] || req.headers[lowerHeader];
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Validate User-Agent is not empty or suspicious
|
|
327
|
+
*/
|
|
328
|
+
isValidUserAgent(userAgent) {
|
|
329
|
+
if (!userAgent || userAgent.length === 0) {
|
|
330
|
+
if (this.config.debug) {
|
|
331
|
+
this.logger.debug("security", "Empty User-Agent detected");
|
|
332
|
+
}
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
// Allow shorter User-Agents for mobile HTTP clients (like okhttp/4.12.0)
|
|
336
|
+
if (userAgent.length < 5) {
|
|
337
|
+
if (this.config.debug) {
|
|
338
|
+
this.logger.debug("security", `Suspicious short User-Agent: ${userAgent}`);
|
|
339
|
+
}
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
// User-Agent with only generic "Mobile" is suspicious
|
|
343
|
+
if (userAgent === "Mobile" || userAgent.toLowerCase() === "mobile") {
|
|
344
|
+
if (this.config.debug) {
|
|
345
|
+
this.logger.debug("security", "Generic 'Mobile' User-Agent detected");
|
|
346
|
+
}
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
return true;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Perform comprehensive mobile request validation
|
|
353
|
+
*/
|
|
354
|
+
validateMobileRequest(req, userAgent) {
|
|
355
|
+
let score = 0;
|
|
356
|
+
let reason = "";
|
|
357
|
+
const reasons = [];
|
|
358
|
+
// Phase 1: Validation checks (disqualifiers)
|
|
359
|
+
if (!this.isValidUserAgent(userAgent)) {
|
|
360
|
+
return { isValid: false, reason: "Invalid User-Agent", score: 0 };
|
|
361
|
+
}
|
|
362
|
+
if (this.hasSuspiciousPatterns(userAgent)) {
|
|
363
|
+
return {
|
|
364
|
+
isValid: false,
|
|
365
|
+
reason: "Suspicious patterns detected",
|
|
366
|
+
score: 0,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
if (this.hasDesktopIndicators(userAgent)) {
|
|
370
|
+
return {
|
|
371
|
+
isValid: false,
|
|
372
|
+
reason: "Desktop OS indicators detected",
|
|
373
|
+
score: 0,
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
// Check browser indicators AFTER mobile patterns to avoid false positives
|
|
377
|
+
const hasBrowser = this.hasBrowserIndicators(userAgent);
|
|
378
|
+
const hasMobilePattern = this.hasMobilePatterns(userAgent);
|
|
379
|
+
const hasAndroidClient = this.hasAndroidHttpClient(userAgent);
|
|
380
|
+
const hasIosClient = this.hasIosHttpClient(userAgent);
|
|
381
|
+
const hasMobileFramework = this.hasMobileFramework(userAgent);
|
|
382
|
+
// If blockBrowserIndicators is disabled, browsers are allowed
|
|
383
|
+
if (!this.config.blockBrowserIndicators && hasBrowser) {
|
|
384
|
+
score += 50; // Give browsers a decent score when allowed
|
|
385
|
+
reasons.push("Browser allowed (blockBrowserIndicators disabled)");
|
|
386
|
+
}
|
|
387
|
+
// If it has browser indicators but NO mobile indicators, block it (only when blocking browsers)
|
|
388
|
+
else if (hasBrowser &&
|
|
389
|
+
!hasMobilePattern &&
|
|
390
|
+
!hasAndroidClient &&
|
|
391
|
+
!hasIosClient &&
|
|
392
|
+
!hasMobileFramework) {
|
|
393
|
+
return {
|
|
394
|
+
isValid: false,
|
|
395
|
+
reason: "Browser indicators without mobile patterns",
|
|
396
|
+
score: 0,
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
// Phase 2: Positive indicators (qualifiers)
|
|
400
|
+
// Custom patterns have highest priority
|
|
401
|
+
if (this.matchesCustomPatterns(userAgent)) {
|
|
402
|
+
score = 100;
|
|
403
|
+
reason = "Custom pattern match";
|
|
404
|
+
return { isValid: true, reason, score };
|
|
405
|
+
}
|
|
406
|
+
// Mobile HTTP clients (high confidence for legitimate mobile apps)
|
|
407
|
+
if (hasAndroidClient) {
|
|
408
|
+
score += 80;
|
|
409
|
+
reasons.push("Android HTTP client");
|
|
410
|
+
}
|
|
411
|
+
if (hasIosClient) {
|
|
412
|
+
score += 80;
|
|
413
|
+
reasons.push("iOS HTTP client");
|
|
414
|
+
}
|
|
415
|
+
// Mobile frameworks (high confidence)
|
|
416
|
+
if (hasMobileFramework) {
|
|
417
|
+
score += 70;
|
|
418
|
+
reasons.push("Mobile framework");
|
|
419
|
+
}
|
|
420
|
+
// Platform-specific detection (medium-high confidence)
|
|
421
|
+
if (this.hasAllowedPlatform(userAgent)) {
|
|
422
|
+
score += 60;
|
|
423
|
+
reasons.push("Allowed platform");
|
|
424
|
+
}
|
|
425
|
+
// General mobile patterns (medium confidence)
|
|
426
|
+
if (hasMobilePattern) {
|
|
427
|
+
score += 40;
|
|
428
|
+
reasons.push("Mobile patterns");
|
|
429
|
+
}
|
|
430
|
+
// Mobile headers boost confidence
|
|
431
|
+
if (this.hasMobileHeaders(req)) {
|
|
432
|
+
score += 30;
|
|
433
|
+
reasons.push("Mobile headers");
|
|
434
|
+
}
|
|
435
|
+
// Require minimum score threshold
|
|
436
|
+
const threshold = this.config.requireMobileHeaders ? 80 : 50;
|
|
437
|
+
reason =
|
|
438
|
+
reasons.length > 0 ? reasons.join(" + ") : "No mobile indicators";
|
|
439
|
+
return {
|
|
440
|
+
isValid: score >= threshold,
|
|
441
|
+
reason: score >= threshold
|
|
442
|
+
? reason
|
|
443
|
+
: `Insufficient mobile indicators (score: ${score}/${threshold})`,
|
|
444
|
+
score,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Check if request is from a mobile app
|
|
449
|
+
*/
|
|
450
|
+
isMobileRequest(req) {
|
|
451
|
+
const rawUserAgent = req.headers["user-agent"] || req.headers["User-Agent"] || "";
|
|
452
|
+
const userAgent = this.normalizeUserAgent(rawUserAgent);
|
|
453
|
+
const validation = this.validateMobileRequest(req, userAgent);
|
|
454
|
+
if (this.config.debug) {
|
|
455
|
+
this.logger.debug("security", `Validation result: ${validation.isValid ? "PASS" : "FAIL"} ` +
|
|
456
|
+
`(Score: ${validation.score}) - ${validation.reason} - UA: ${userAgent.substring(0, 100)}`);
|
|
457
|
+
}
|
|
458
|
+
return validation.isValid;
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Middleware function
|
|
462
|
+
*/
|
|
463
|
+
middleware() {
|
|
464
|
+
return (req, res, next) => {
|
|
465
|
+
const userAgent = req.headers["user-agent"] ||
|
|
466
|
+
req.headers["User-Agent"] ||
|
|
467
|
+
"none";
|
|
468
|
+
if (this.config.debug) {
|
|
469
|
+
this.logger.debug("security", `MobileOnly check for ${req.ip} - UA: ${userAgent.substring(0, 100)}`);
|
|
470
|
+
}
|
|
471
|
+
if (this.isMobileRequest(req)) {
|
|
472
|
+
if (this.config.debug) {
|
|
473
|
+
this.logger.debug("security", `✅ ALLOWED mobile request from: ${req.ip}`);
|
|
474
|
+
}
|
|
475
|
+
return next();
|
|
476
|
+
}
|
|
477
|
+
this.logger.warn("security", `❌ BLOCKED non-mobile request from ${req.ip}. User-Agent: ${userAgent.substring(0, 150)}`);
|
|
478
|
+
// Check if headers already sent to prevent error
|
|
479
|
+
if (res.headersSent) {
|
|
480
|
+
this.logger.error("security", `Cannot send response for blocked request from ${req.ip} - headers already sent`);
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
return res.status(this.config.statusCode).json({
|
|
484
|
+
error: "Access Denied",
|
|
485
|
+
message: this.config.errorMessage,
|
|
486
|
+
code: "MOBILE_ONLY",
|
|
487
|
+
timestamp: new Date().toISOString(),
|
|
488
|
+
userAgent: userAgent,
|
|
489
|
+
ip: req.ip,
|
|
490
|
+
});
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Get current configuration
|
|
495
|
+
*/
|
|
496
|
+
getConfig() {
|
|
497
|
+
return { ...this.config };
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
export { MobileOnlyProtector };
|
|
502
|
+
//# sourceMappingURL=MobileOnlyProtector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileOnlyProtector.js","sources":["../../../../../../src/middleware/built-in/security/MobileOnlyProtector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,8 @@ class RequestSignatureProtector {
|
|
|
23
23
|
maxHeaderLength: 512,
|
|
24
24
|
maxFailedAttempts: 5,
|
|
25
25
|
blockDuration: 15 * 60 * 1000, // 15 minutes
|
|
26
|
+
disableRateLimiting: false,
|
|
27
|
+
rateLimitScaleFactor: 1.0,
|
|
26
28
|
minSecretLength: 32,
|
|
27
29
|
timingSafeComparison: true,
|
|
28
30
|
rejectSuspiciousPatterns: true,
|
|
@@ -56,8 +58,9 @@ class RequestSignatureProtector {
|
|
|
56
58
|
*/
|
|
57
59
|
handleRequest(req, res, next) {
|
|
58
60
|
const clientId = this.extractClientIdentifier(req);
|
|
59
|
-
// Check if client is currently blocked
|
|
60
|
-
if (this.
|
|
61
|
+
// Check if client is currently blocked (if rate limiting is enabled)
|
|
62
|
+
if (!this.config.disableRateLimiting &&
|
|
63
|
+
this.isClientBlocked(clientId)) {
|
|
61
64
|
return this.blockRequest(res, "RATE_LIMITED", "Too many failed authentication attempts. Temporarily blocked.", clientId);
|
|
62
65
|
}
|
|
63
66
|
if (this.config.debug) {
|
|
@@ -224,6 +227,10 @@ class RequestSignatureProtector {
|
|
|
224
227
|
* Record failed authentication attempt
|
|
225
228
|
*/
|
|
226
229
|
recordFailedAttempt(clientId) {
|
|
230
|
+
// Skip recording if rate limiting is disabled
|
|
231
|
+
if (this.config.disableRateLimiting) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
227
234
|
const now = Date.now();
|
|
228
235
|
const attempt = this.failedAttempts.get(clientId) || {
|
|
229
236
|
count: 0,
|
|
@@ -232,13 +239,20 @@ class RequestSignatureProtector {
|
|
|
232
239
|
};
|
|
233
240
|
attempt.count += 1;
|
|
234
241
|
attempt.lastAttempt = now;
|
|
242
|
+
// Calculate scaled thresholds
|
|
243
|
+
const scaledMaxFailedAttempts = Math.ceil((this.config.maxFailedAttempts || 5) *
|
|
244
|
+
(this.config.rateLimitScaleFactor || 1.0));
|
|
245
|
+
const scaledBlockDuration = Math.ceil((this.config.blockDuration || 900000) *
|
|
246
|
+
(this.config.rateLimitScaleFactor || 1.0));
|
|
235
247
|
// Block if threshold exceeded
|
|
236
|
-
if (attempt.count >=
|
|
237
|
-
attempt.blockedUntil = now +
|
|
248
|
+
if (attempt.count >= scaledMaxFailedAttempts) {
|
|
249
|
+
attempt.blockedUntil = now + scaledBlockDuration;
|
|
238
250
|
this.logSecurityEvent("warning", "Client blocked due to failed attempts", {
|
|
239
251
|
clientId,
|
|
240
252
|
attempts: attempt.count,
|
|
241
253
|
blockedUntil: new Date(attempt.blockedUntil).toISOString(),
|
|
254
|
+
scaledMaxFailedAttempts,
|
|
255
|
+
scaledBlockDuration,
|
|
242
256
|
});
|
|
243
257
|
}
|
|
244
258
|
this.failedAttempts.set(clientId, attempt);
|
|
@@ -384,6 +398,8 @@ class RequestSignatureProtector {
|
|
|
384
398
|
maxHeaderLength: this.config.maxHeaderLength,
|
|
385
399
|
maxFailedAttempts: this.config.maxFailedAttempts,
|
|
386
400
|
blockDuration: this.config.blockDuration,
|
|
401
|
+
disableRateLimiting: this.config.disableRateLimiting,
|
|
402
|
+
rateLimitScaleFactor: this.config.rateLimitScaleFactor,
|
|
387
403
|
minSecretLength: this.config.minSecretLength,
|
|
388
404
|
timingSafeComparison: this.config.timingSafeComparison,
|
|
389
405
|
rejectSuspiciousPatterns: this.config.rejectSuspiciousPatterns,
|