nehonix-uri-processor
Version:
A powerful URI processor for encoding, decoding, and analyzing URI data securely.
51 lines • 1.34 kB
JavaScript
/**
* Default options for the middleware
*/
export const defaultOptions = {
blockOnMalicious: true,
logDetails: true,
automaticBlocking: false,
scoreThreshold: 80,
enableRateLimit: false,
rateLimit: {
windowMs: 15 * 60 * 1000, // 15 minutes
maxRequests: 100,
message: "Too many requests, please try again later",
},
scanComponents: ["url", "query"],
transformResponse: false,
secureHeaders: true,
};
/**
* Stores IPs that have been flagged as suspicious
*/
export const suspiciousIPs = new Map();
/**
* Rate limiting storage
*/
export const rateLimitStore = new Map();
/**
* Deduplicates patterns
*/
export function deduplicatePatterns(patterns) {
const seen = new Map();
patterns.forEach((pattern) => {
const key = `${pattern.type}:${pattern.matchedValue}:${pattern.location}`;
if (!seen.has(key)) {
seen.set(key, pattern);
}
});
return Array.from(seen.values());
}
/**
* Gets client IP from request
*/
export function getClientIP(req) {
const forwardedFor = req.get("X-Forwarded-For");
if (forwardedFor) {
// Get the first IP in the chain
return forwardedFor.split(",")[0].trim();
}
return req.ip || req.socket.remoteAddress || "0.0.0.0";
}
//# sourceMappingURL=EXPRESS.config.js.map