Umgang mit DNS-Fehlern in einer PAC-Regel
Geben Sie einer fehlgeschlagenen PAC-DNS-Abfrage einen eigenen Richtlinienzweig, statt sie als verifizierte Adresse außerhalb des lokalen Netzes zu behandeln.
Eine fehlgeschlagene Abfrage beweist nicht, dass ein Ziel außerhalb Ihres privaten Netzes liegt. Sie beweist nur, dass diese PAC-Auswertung die benötigte Adresse nicht erhalten hat.
Dieser Unterschied zählt, wenn dnsResolve() eine isInNet()-Regel speist. Chromiums PAC-Implementierung gibt null zurück, wenn die Auflösung fehlschlägt. Bauen Sie den Fehlerzweig nicht auf der Erinnerung auf, das Ergebnis sei immer eine leere Zeichenkette.
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";
}
Dieses Beispiel schickt unaufgelöste Namen an den Proxy. Das ist eine Richtlinienentscheidung, kein allgemein sicherer Standard. Es kann nützlich sein, wenn der Proxy einen Resolver oder eine Netzsicht hat, die dem Client fehlt. Ein Netz, das lokale Auflösung verlangt, braucht ein anderes ausdrückliches Ergebnis.
Einmal auflösen und das Ergebnis wiederverwenden. So bleibt die Entscheidung an einen Wert gebunden, und potenziell langsame Hilfsaufrufe werden nicht wiederholt.
Prüfen Sie außerdem den tatsächlichen PAC-Konsumenten. Ältere IPv4-Hilfsfunktionen und erweiterte IPv6-Hilfsfunktionen haben unterschiedliche Verträge. Eine Regel, die mit der Implementierung eines Browsers getestet wurde, belegt keine Unterstützung in jeder Anwendung, die dieselbe PAC-URL verwendet.
Wenn die Anforderung nur darin besteht, ein bekanntes Firmensuffix zu routen, kann eine Hostnamen-Regel die Abfrage ganz vermeiden. Greifen Sie zur adressbasierten Klassifizierung, wenn die Adresse eine Information ist, die die Richtlinie wirklich braucht.