thrilled-be-core
Version:
Core Express backend package with middleware, logging, security, and base application setup
117 lines • 3.14 kB
TypeScript
/**
* 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