Jei Jint praneša, kad vertinant PAC trūksta dnsResolve arba myIpAddress, daugiau JavaScript įkėlimas nebūtinai yra sprendimas. Šie PAC pagalbininkai priklauso aplinkai, kurią suteikia prieglobos programa.

Prieš kviečiant FindProxyForURL

Pasirinkite palaikomą PAC pagalbininkų rinkinį ir adresų šeimas, tada įdiekite tuos pagalbininkus į variklį. Išsaugokite jų sutartis: dnsResolve priima pagrindinio kompiuterio vardą, myIpAddress nepriima argumentų ir reikalauja vietinės sąsajos politikos, o shExpMatch naudoja apvalkalo tipo šablonus. Stub, grąžinantis patogią reikšmę, gali tyliai pasirinkti neteisingą maršrutą.

Atlikus šią inicializaciją, pagrindinis kvietimas gali atrodyti taip Jint 4.4.0:

var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
    "FindProxyForURL",
    destinationUrl,
    destination.IdnHost
).AsString();

engine yra sukonfigūruotas Jint.Engine; pacSource yra gauta PAC programa. destination.IdnHost pateikia pagrindinio kompiuterio vardą be prievado ar kelio. Šis kvietimas nei gauna PAC, nei atidaro tarpinio serverio ryšį.

Po kvietimo

Rezultatą, pavyzdžiui, PROXY proxy.example:8080; DIRECT, interpretuokite kaip tvarkingą maršruto kandidatų ir atsarginio maršruto sąrašą. Perdavus visą šią eilutę kaip tarpinio serverio URL, prarandama jos prasmė. Vertinimo klaidą atskirkite nuo aiškaus DIRECT rezultato.

Kol jis veikia

Sukonfigūruokite Jint trukmės, teiginių, atminties ir atšaukimo apribojimus bei atskleiskite tik reikalingas prieglobos funkcijas. DNS atgalinius kvietimus apribokite atskirai: JavaScript vykdymo patikros nepadaro savavališko blokuojančio prieglobos kvietimo nutraukiamo. Nuosekliai apribokite prieigą prie variklio arba suteikite lygiagrečiam darbui atskirai valdomus egzempliorius; varikliai nėra saugūs naudoti vienu metu.

Naršyklės PAC įgyvendinimai gali skirtis pagalbininkų plėtiniais ir atskleidžiamomis URL detalėmis, ypač HTTPS atveju. Vieno pavyzdinio rezultato atitikimas reiškia mažiau nei naršyklės maršrutizavimo elgsenos atitikimas.

Susiję straipsniai