UNPKG

thrilled-be-core

Version:

Core Express backend package with middleware, logging, security, and base application setup

117 lines 3.14 kB
/** * Enhanced Security Plugin for Enterprise Applications * * This plugin provides comprehensive security hardening including: * - Helmet.js integration with proper CSP * - Dynamic CORS validation * - Enhanced rate limiting per user * - Advanced input sanitization * - Security headers management * - Suspicious request detection */ import { Express } from 'express'; import { BasePlugin } from '../plugins/Plugin'; import { Logger } from '../logging/Logger'; export interface SecurityPluginConfig { enableCSP?: boolean; enableHSTS?: boolean; enableXSSProtection?: boolean; allowedOrigins?: string[]; enableDynamicCORS?: boolean; trustedProxies?: string[]; maxRequestSize?: string; enableSecurityHeaders?: boolean; enableInputSanitization?: boolean; logger?: Logger; } /** * Enhanced Security Plugin with comprehensive security hardening * * @example * ```typescript * // In your app setup * import { EnhancedSecurityPlugin } from 'thrilled-be-core'; * * const securityPlugin = new EnhancedSecurityPlugin({ * enableCSP: true, * enableHSTS: process.env.NODE_ENV === 'production', * allowedOrigins: ['https://myapp.com'], * enableInputSanitization: true, * }); * * app.use(securityPlugin); * ``` */ export declare class EnhancedSecurityPlugin extends BasePlugin { readonly name = "enhanced-security"; readonly version = "1.0.0"; private config; private allowedOrigins; private isProduction; private validationModule; private XSSProtection; private SQLInjectionProtection; constructor(config?: SecurityPluginConfig); protected setup(): Promise<void>; /** * Initialize input sanitization modules */ private initializeInputSanitization; protected registerMiddleware(app: Express): void; /** * Register routes for this plugin */ protected registerRoutes(app: Express): void; /** * Setup input sanitization middleware */ private setupInputSanitization; /** * Setup Helmet.js with comprehensive security configuration */ private setupHelmetSecurity; /** * Setup dynamic CORS validation */ private setupDynamicCORS; /** * Setup enhanced request validation */ private setupRequestValidation; /** * Initialize allowed origins */ private initializeAllowedOrigins; /** * Check if origin is allowed */ private isOriginAllowed; /** * Check if origin is a development origin */ private isDevelopmentOrigin; /** * Add CORS headers to response */ private addCORSHeaders; /** * Detect suspicious requests */ private detectSuspiciousRequests; /** * Record security event for monitoring */ private recordSecurityEvent; /** * Parse size string to bytes */ private parseSize; /** * Health check for security plugin */ healthCheck(): Promise<{ status: 'healthy' | 'unhealthy'; details: Record<string, unknown>; }>; } //# sourceMappingURL=EnhancedSecurityPlugin.d.ts.map