UNPKG

@j03fr0st/pubg-ts

Version:

A comprehensive TypeScript wrapper for the PUBG API

112 lines 3.26 kB
export interface SecurityConfig { enableInputValidation: boolean; enableApiKeySanitization: boolean; logSecurityEvents: boolean; strictMode: boolean; } export interface ValidationResult { isValid: boolean; sanitized?: string; errors: string[]; warnings: string[]; } export interface SecurityEvent { type: 'input_validation' | 'api_key_exposure' | 'suspicious_activity' | 'rate_limit_exceeded'; severity: 'low' | 'medium' | 'high' | 'critical'; message: string; context: Record<string, any>; timestamp: number; } /** * Comprehensive security utility for input validation, sanitization, and threat detection * * Provides production-ready security features including: * - Input validation and sanitization * - API key protection and masking * - Security event logging and monitoring * - Data leak prevention * - SQL injection and XSS protection * * @example * ```typescript * const security = new SecurityManager({ * enableInputValidation: true, * strictMode: true * }); * * // Validate and sanitize player names * const result = security.validatePlayerName('player123'); * if (!result.isValid) { * throw new Error(`Invalid player name: ${result.errors.join(', ')}`); * } * * // Secure API key handling * const maskedKey = security.maskApiKey('abcd-1234-efgh-5678'); * security.validateApiKey(apiKey); * ``` */ export declare class SecurityManager { private config; private securityEvents; private suspiciousActivityCount; private lastSecurityCheck; private readonly sqlInjectionPatterns; private readonly xssPatterns; private readonly commandInjectionPatterns; constructor(config?: Partial<SecurityConfig>); /** * Validate and sanitize player names */ validatePlayerName(playerName: string): ValidationResult; /** * Validate and sanitize match IDs */ validateMatchId(matchId: string): ValidationResult; /** * Validate API keys securely */ validateApiKey(apiKey: string): ValidationResult; /** * Safely mask API keys for logging */ maskApiKey(apiKey: string): string; /** * Validate URL parameters and query strings */ validateUrlParameter(param: string, paramName: string): ValidationResult; /** * Check for common security threats in input */ private checkForSecurityThreats; /** * Sanitize sensitive data for safe logging */ sanitizeForLogging(data: any): any; /** * Log security events */ private logSecurityEvent; /** * Get recent security events */ getSecurityEvents(limit?: number): SecurityEvent[]; /** * Check overall security status */ getSecurityStatus(): { status: 'secure' | 'warning' | 'critical'; suspiciousActivityCount: number; recentEvents: number; lastCheck: number; }; /** * Reset security counters (for testing or after addressing issues) */ resetSecurityCounters(): void; /** * Validate environment configuration for security */ validateEnvironmentSecurity(): ValidationResult; } export declare const securityManager: SecurityManager; //# sourceMappingURL=security.d.ts.map