voyage-and-consumption-mcp-server
Version:
Voyage and consumption management server handling vessel voyages, fuel consumption, performance monitoring, and operational data with ERP access for data extraction
84 lines (83 loc) • 2.5 kB
TypeScript
export interface SanitizationOptions {
allowRegExp?: boolean;
maxStringLength?: number;
allowedOperators?: string[];
preventJavaScriptInjection?: boolean;
}
export declare class SanitizationMiddleware {
private static readonly MONGODB_OPERATORS;
private static readonly DANGEROUS_OPERATORS;
private static readonly DANGEROUS_PATTERNS;
/**
* Sanitizes input parameters to prevent MongoDB injection attacks
* @param input - The input to sanitize
* @param options - Sanitization options
* @returns Sanitized input
*/
static sanitizeInput(input: any, options?: SanitizationOptions): any;
/**
* Sanitizes string input
*/
private static sanitizeString;
/**
* Sanitizes object input
*/
private static sanitizeObject;
/**
* Sanitizes object keys
*/
private static sanitizeObjectKey;
/**
* Checks if an operator is dangerous
*/
private static isDangerousOperator;
/**
* Sanitizes MongoDB query parameters
*/
static sanitizeMongoQuery(query: any, options?: SanitizationOptions): any;
/**
* Sanitizes RegExp patterns to prevent injection
*/
static sanitizeRegExpPattern(pattern: string): string;
/**
* Creates a safe regex pattern for MongoDB queries
*/
static createSafeRegex(pattern: string, flags?: string): RegExp;
/**
* Sanitizes Typesense query parameters
*/
static sanitizeTypesenseQuery(query: any): any;
/**
* Sanitizes Typesense search strings
*/
private static sanitizeTypesenseString;
/**
* Sanitizes URL parameters
*/
static sanitizeUrlParams(params: Record<string, any>): Record<string, any>;
/**
* Validates and sanitizes date strings
*/
static sanitizeDateString(dateString: string): string;
/**
* Sanitizes IMO numbers
*/
static sanitizeIMO(imo: string | number): string;
/**
* Sanitizes coordinate values
*/
static sanitizeCoordinate(coordinate: number, type: 'latitude' | 'longitude'): number;
/**
* Sanitizes HTML content to prevent XSS
*/
static sanitizeHtml(html: string): string;
/**
* Validates that a query object is safe
*/
static validateQuerySafety(query: any): boolean;
/**
* Logs security events
*/
static logSecurityEvent(event: string, details: any): void;
}
export declare const sanitizationMiddleware: typeof SanitizationMiddleware;