UNPKG

nehonix-uri-processor

Version:

A powerful URI processor for encoding, decoding, and analyzing URI data securely.

55 lines 1.85 kB
import { DetectedPattern, MaliciousPatternOptions, MaliciousPatternResult } from "../../services/MaliciousPatterns.service"; import type { Request, Response } from "express"; export interface NsbMiddlewareOptions extends MaliciousPatternOptions { blockOnMalicious?: boolean; logDetails?: boolean; automaticBlocking?: boolean; customBlockHandler?: (req: Request, res: Response, result: MaliciousPatternResult) => void; scoreThreshold?: number; bypassHeader?: string; bypassToken?: string; enableRateLimit?: boolean; rateLimit?: { windowMs?: number; maxRequests?: number; message?: string | object; }; scanComponents?: ("url" | "headers" | "query" | "body")[]; ipBlacklist?: string[]; ipWhitelist?: string[]; transformResponse?: boolean; secureHeaders?: boolean; } /** * Security event interface for logging security-related actions */ export interface SecurityEvent { timestamp: number; type: "block" | "warning" | "suspicious" | "rate_limit" | "bypass"; ip: string; url?: string; method?: string; score?: number; patterns?: DetectedPattern[]; details?: any; } /** * Database adapter interface for persistent storage */ export interface SecurityDatabaseAdapterType { trackSuspiciousIP: (ip: string, details: any) => Promise<void>; getSuspiciousIPs: () => Promise<Array<{ ip: string; count: number; lastSeen: number; details?: any; }>>; blockIP: (ip: string, reason: string) => Promise<boolean>; isIPBlocked: (ip: string) => Promise<boolean>; saveSecurityEvent: (event: SecurityEvent) => Promise<void>; getSecurityEvents: (options: { startDate: Date; endDate: Date; }) => Promise<SecurityEvent[]>; } //# sourceMappingURL=types.express.middleware.d.ts.map