/** * SSRF防护配置 */ export interface SSRFProtectionConfig { /** 是否启用SSRF防护 */ enabled: boolean; /** 允许的URL协议 */ allowedProtocols: string[]; /** 禁止访问的IP段(私有网络、本地回环等) */ blockedIPRanges: string[]; /** 允许的主机名白名单 */ allowedHostnames?: string[]; /** 禁止的主机名黑名单 */ blockedHostnames?: string[]; } /** * URL验证配置 */ export interface URLValidationConfig { /** 最大URL长度 */ maxURLLength: number; /** 是否允许本地回环地址 */ allowLoopback: boolean; /** 是否允许私有网络地址 */ allowPrivateNetwork: boolean; /** 是否允许Link-local地址 */ allowLinkLocal: boolean; } /** * 安全验证工具类 * 提供URL验证、SSRF防护等功能 */ export declare class SecurityValidator { private static readonly logger; /** * 默认SSRF防护配置 */ private static readonly defaultSSRFConfig; /** * 默认URL验证配置 */ private static readonly defaultURLConfig; /** * 验证URL安全性 * @param url 要验证的URL字符串 * @param urlConfig URL验证配置 * @returns 验证结果和错误信息 */ static validateURL(url: string, urlConfig?: Partial): { valid: boolean; error?: string; }; /** * SSRF防护检查 * @param url 要检查的URL * @param ssrfConfig SSRF防护配置 * @returns 检查结果和错误信息 */ static checkSSRF(url: string, ssrfConfig?: Partial): { safe: boolean; error?: string; }; /** * 清理和验证URL * 综合验证和SSRF防护 * @param url 要清理的URL * @param config 完整的安全配置 * @returns 清理后的URL和验证结果 */ static sanitizeURL(url: string, config?: { urlConfig?: Partial; ssrfConfig?: Partial; }): { url: string; valid: boolean; error?: string; }; /** * 敏感数据检测 * 检查数据中是否包含敏感信息(如密码、token等) * @param data 要检查的数据对象 * @param additionalPatterns 额外的敏感数据模式 * @returns 检测结果 */ static detectSensitiveData(data: any, additionalPatterns?: RegExp[]): { hasSensitiveData: boolean; fields: string[]; }; /** * 获取默认SSRF防护配置 */ static getDefaultSSRFConfig(): SSRFProtectionConfig; /** * 获取默认URL验证配置 */ static getDefaultURLConfig(): URLValidationConfig; /** * 从主机名中提取IP地址 */ private static extractIPAddress; /** * 验证IP地址 */ private static validateIPAddress; /** * 检查IP地址是否在阻止的范围内 */ private static checkIPRange; /** * 检查IP地址是否在指定范围内 * 简化版本,主要用于常见CIDR范围 */ private static isIPInRange; /** * 验证主机名格式 */ private static isValidHostname; }