PAC правило за кратки имена може да заобиколи вашия прокси сървър
Разберете защо име на хост без точка и неговата напълно квалифицирана форма могат да изберат различни маршрути в един и същ PAC скрипт.
PAC скрипт получава името на хоста от URL адреса. dashboard не става автоматично dashboard.example.internal преди съпоставянето:
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
return "PROXY 203.0.113.10:8080";
}Използвайте реален HTTP крайна точка вместо адреса от документацията; списъкът с HTTP прокси сървъри предлага кандидати за тестове към публични дестинации, където този маршрут е разрешен. В този скрипт краткото име умишлено връща DIRECT; напълно квалифицираното име стига до прокси клона. “Plain hostname” означава изписване без точка, а не заключение, че хостът е в доверена локална мрежа.
Ако желаната политика е един вътрешен домейн, съпоставяйте този домейн, а не всяко кратко име. dnsDomainIs и shExpMatch имат различни входове и семантика на шаблоните. Проверката на суфикс за .example.internal не включва точния корен example.internal; включете този случай изрично, когато е нужно. Шаблон в стил shell не е IP подмрежа или регулярен израз.
Сравнете резултата на скрипта за краткото име, напълно квалифицираното име, несвързан публичен хост и всеки предвиден корен на домейн. Това тества избора на правило без свързване с проксито. Прегледайте първото правило, което връща, когато широк DIRECT клон пречи да се опита иначе достъпна крайна точка.
Използвайте сравнение на имена, когато то изразява политиката; DNS помощните функции добавят свои собствени заявки и забавяне. Дръжте и имплицитното локално заобикаляне на браузъра отделно от скрипта. Проверка на localhost не може да замести истинското изписване на публичната или вътрешната дестинация.