Nieudane zapytanie nie dowodzi, że cel znajduje się poza twoją siecią prywatną. Dowodzi tylko, że ta ocena PAC nie uzyskała potrzebnego adresu.

Ta różnica ma znaczenie, gdy dnsResolve() zasila regułę isInNet(). Implementacja PAC w Chromium zwraca null, gdy rozwiązywanie się nie powiedzie. Nie buduj gałęzi błędu na wspomnieniu, że wynik zawsze jest pustym ciągiem.

function FindProxyForURL(url, host) {
    var address = dnsResolve(host);
    if (!address) {
        return "PROXY proxy.example:8080";
    }
    if (isInNet(address, "10.40.0.0", "255.255.0.0")) {
        return "DIRECT";
    }
    return "PROXY proxy.example:8080";
}

Ten przykład wysyła nierozwiązane nazwy do proxy. To wybór polityki, a nie uniwersalne bezpieczne ustawienie domyślne. Może być przydatny, gdy proxy ma resolver lub widok sieci, którego klient nie ma. Sieć wymagająca lokalnego rozwiązywania potrzebuje innego, jawnego wyniku.

Rozwiąż raz i użyj wyniku ponownie. Dzięki temu decyzja pozostaje powiązana z jedną wartością i unika się powtarzania potencjalnie wolnych wywołań pomocniczych.

Sprawdź też rzeczywistego konsumenta PAC. Starsze funkcje pomocnicze IPv4 i rozszerzone funkcje pomocnicze IPv6 mają różne kontrakty. Reguła przetestowana z implementacją jednej przeglądarki nie dowodzi wsparcia w każdej aplikacji używającej tego samego adresu PAC.

Jeśli wymaganiem jest tylko kierowanie znanego sufiksu firmowego, reguła nazwy hosta może całkowicie uniknąć zapytania. Po klasyfikację opartą na adresie sięgaj wtedy, gdy adres jest informacją naprawdę potrzebną polityce.

Powiązane artykuły