Pravidlo PAC pro krátká jména může obejít váš proxy
Pochopte, proč může jméno hostitele bez tečky a jeho plně kvalifikovaná podoba zvolit v témže skriptu PAC různé cesty.
Skript PAC obdrží jméno hostitele z URL. dashboard se před porovnáním automaticky nestane dashboard.example.internal:
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
return "PROXY 203.0.113.10:8080";
}Použijte skutečný koncový bod HTTP místo dokumentační adresy; seznam HTTP proxy nabízí kandidáty pro testy veřejných cílů tam, kde je tato cesta povolena. V tomto skriptu krátké jméno záměrně vrací DIRECT; plně kvalifikované jméno se dostane do větve proxy. „Plain hostname“ znamená zápis bez tečky, nikoli zjištění, že hostitel je v důvěryhodné místní síti.
Pokud je požadovanou politikou jedna interní doména, porovnávejte tuto doménu, nikoli každé krátké jméno. dnsDomainIs a shExpMatch mají různé vstupy a sémantiku vzorů. Kontrola přípony pro .example.internal nezahrnuje přesný kořen example.internal; tento případ výslovně zahrňte, když je to zamýšleno. Vzor ve stylu shellu není podsíť IP ani regulární výraz.
Porovnejte výsledek skriptu pro krátké jméno, plně kvalifikované jméno, nesouvisejícího veřejného hostitele a jakýkoli zamýšlený kořen domény. Tím se testuje volba pravidla bez připojení k proxy. Prohlédněte první pravidlo, které vrací, když široká větev DIRECT brání vyzkoušení jinak dostupného koncového bodu.
Použijte porovnání jmen, když vyjadřuje politiku; pomocné funkce DNS přidávají vlastní dotazy a zpoždění. Implicitní místní obejití prohlížeče držte také oddělené od skriptu. Kontrola localhostu nemůže nahradit skutečný zápis veřejného nebo interního cíle.