/** * 安全工具 — timing-safe 字符串比较 + SSRF 防护 * * 统一所有模块的安全函数,消除重复实现。 */ /** * Timing-safe 字符串比较(HMAC-SHA256 归一化,不泄漏长度信息) * * 每次调用生成临时 HMAC key,确保 a 和 b 在同一次比较中使用相同 key。 * key 每次不同不影响安全性 — 只需保证单次调用内 hashA 和 hashB 用同一 key。 */ export declare function safeTokenEqual(a: string, b: string): boolean; export declare function normalizeIpAddress(raw: string): string; export declare function shouldTrustForwardedHeaders(remoteAddress: string | undefined): boolean; /** * 校验 hostname 是否为公网可达地址,返回已验证的 IP 列表。 * 调用方应使用返回的 resolved IP 直连,防止 DNS rebinding 攻击。 */ export declare function assertPublicResolvableHost(hostname: string, opts?: { skipDnsLookup?: boolean; }): Promise; export declare function assertPublicHttpUrl(rawUrl: string, opts?: { skipDnsLookup?: boolean; }): Promise<{ url: URL; resolvedIps: string[]; }>; /** * 检测是否为私有/内网地址(防 SSRF) * * 覆盖:IPv4 私有/回环、IPv6 私有/回环/未指定、IPv4-mapped IPv6(点分+十六进制)、 * 八进制/十进制/十六进制 IP 编码。 */ export declare function isPrivateHost(hostname: string): boolean; //# sourceMappingURL=security.d.ts.map