first commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
const LOOPBACK_HOSTNAMES = new Set(['localhost', '::1', '[::1]'])
|
||||
|
||||
export type SqlTlsMode = 'disable' | 'trust-server-certificate' | 'verify'
|
||||
|
||||
export function isLoopbackSqlHost(host: string): boolean {
|
||||
const normalized = host.trim().toLowerCase().replace(/^\[|\]$/g, '')
|
||||
if (LOOPBACK_HOSTNAMES.has(normalized) || LOOPBACK_HOSTNAMES.has(`[${normalized}]`)) return true
|
||||
// The whole 127.0.0.0/8 block is loopback, not just 127.0.0.1.
|
||||
return /^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(normalized)
|
||||
}
|
||||
|
||||
export function azureSqlTlsMode(
|
||||
host: string,
|
||||
minimalTlsVersion: string | null,
|
||||
hasLocalPort: boolean,
|
||||
): SqlTlsMode {
|
||||
if (isLoopbackSqlHost(host)) return 'disable'
|
||||
if (hasLocalPort && minimalTlsVersion?.trim().toLowerCase() === 'none') return 'trust-server-certificate'
|
||||
return 'verify'
|
||||
}
|
||||
|
||||
export function postgresTlsMode(host: string, hasLocalPort: boolean): SqlTlsMode {
|
||||
if (isLoopbackSqlHost(host) || hasLocalPort) return 'disable'
|
||||
return 'verify'
|
||||
}
|
||||
Reference in New Issue
Block a user