Hantering van DNS-foute in 'n PAC-reël
Gee 'n mislukte PAC-DNS-soektog sy eie beleidstak in plaas daarvan om dit as 'n bevestigde adres buite die plaaslike netwerk te behandel.
'n Mislukte soektog bewys nie dat 'n bestemming buite jou private netwerk is nie. Dit bewys dat hierdie PAC-evaluering nie die adres gekry het wat dit nodig gehad het nie.
Daardie onderskeid is belangrik wanneer dnsResolve() 'n isInNet()-reël voed. Chromium se PAC-implementering gee null terug wanneer resolusie misluk. Moenie die fouttak bou op 'n onthoude bewering dat die resultaat altyd 'n leë string is nie.
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";
}
Hierdie voorbeeld stuur onopgeloste name na die instaanbediener. Dit is 'n beleidskeuse, nie 'n universele veilige verstek nie. Dit kan nuttig wees wanneer die instaanbediener 'n resolusie of netwerkbeeld het wat die kliënt nie het nie. 'n Netwerk wat plaaslike resolusie vereis, het 'n ander, eksplisiete uitkoms nodig.
Los dit een keer op en hergebruik die resultaat. So bly die besluit aan een waarde gekoppel en word moontlik stadige hulpoproepe nie herhaal nie.
Kontroleer ook die werklike PAC-verbruiker. Legacy IPv4-hulpe en uitgebreide IPv6-hulpe het verskillende kontrakte. 'n Reël wat met een blaaier se implementering getoets is, bewys nie ondersteuning in elke program wat dieselfde PAC-URL gebruik nie.
As die vereiste bloot is om 'n bekende maatskappysuffiks te routeer, kan 'n gasheernaamreël die soektog heeltemal vermy. Gebruik adresgebaseerde klassifikasie wanneer die adres inligting is wat die beleid werklik nodig het.