Jint PAC-i hindamine: puuduvad abifunktsioonid ja marsruuditulemused
FindProxyForURL-i käivitamine on üks samm: host peab rakendama PAC-i abifunktsioonid, piirama täitmist ja tõlgendama tagastatud marsruudiloendit.
Kui Jint teatab PAC-i hindamisel puuduvast dnsResolve-st või myIpAddress-st, ei ole rohkema JavaScripti laadimine tingimata lahendus. Need PAC-i abifunktsioonid kuuluvad keskkonda, mille pakub hostrakendus.
Enne FindProxyForURL-i kutsumist
Valige toetatud PAC-i abifunktsioonide komplekt ja aadressiperekonnad ning seejärel paigaldage need abifunktsioonid mootorisse. Säilitage nende lepingud: dnsResolve võtab hostinime, myIpAddress ei võta argumente ja vajab kohaliku liidese poliitikat ning shExpMatch kasutab shelli-stiilis mustreid. Mugava väärtuse tagastav stub võib vaikselt valida vale marsruudi.
Pärast seda lähtestamist võib põhikuts Jint 4.4.0-s välja näha selline:
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();engine on konfigureeritud Jint.Engine; pacSource on hankitud PAC-i programm. destination.IdnHost annab hostinime ilma pordi ja teeta. See kuts ei hangi PAC-i ega ava puhverserveri ühendust.
Pärast kutset
Tõlgendage tulemust nagu PROXY proxy.example:8080; DIRECT järjestatud marsruudikandidaatide ja varuvaliku loendina. Kogu stringi puhverserveri URL-ina edastamine kaotab selle tähenduse. Hoidke hindamise nurjumine eraldi selgesõnalisest DIRECT tulemusest.
Töötamise ajal
Seadistage Jinti kestuse, käskude, mälu ja tühistamise piirangud ning avalikustage ainult vajalikud hostfunktsioonid. Piirake DNS-tagasihelistusi eraldi: JavaScripti täitmise kontrollid ei muuda suvalist blokeerivat hostikutset katkestatavaks. Serialiseerige juurdepääs mootorile või andke paralleelsele tööle eraldi omatavad eksemplarid; mootorid ei ole samaaegseks kasutamiseks ohutud.
Brauserite PAC-i rakendused võivad erineda abifunktsioonide laienduste ja avalikustatavate URL-i üksikasjade poolest, eriti HTTPS-i puhul. Ühe näidistulemusega sobimine tõestab vähem kui brauseri marsruutimiskäitumisega sobimine.