Jint PAC գնահատում. բացակայող օգնականներ և երթուղու արդյունքներ
FindProxyForURL-ի կատարումը մեկ քայլ է. հոսթը պետք է իրականացնի PAC օգնականները, սահմանափակի կատարումը և մեկնաբանի վերադարձված երթուղիների ցանկը։
Եթե Jint-ը PAC-ի գնահատման ընթացքում հայտնում է բացակայող dnsResolve կամ myIpAddress, ապա ավելի շատ JavaScript բեռնելը պարտադիր լուծում չէ։ Այդ PAC օգնականները պատկանում են հոսթ-հավելվածի տրամադրած միջավայրին։
Մինչ FindProxyForURL-ի կանչը
Ընտրեք աջակցվող PAC օգնականների հավաքածուն և հասցեների ընտանիքները, ապա տեղադրեք այդ օգնականները շարժիչում։ Պահպանեք նրանց պայմանագրերը. dnsResolve-ը վերցնում է հոսթի անուն, myIpAddress-ը ոչ մի արգումենտ չի վերցնում և պահանջում է տեղական ինտերֆեյսի քաղաքականություն, իսկ shExpMatch-ը օգտագործում է shell-ոճի ձևանմուշներ։ Հարմար արժեք վերադարձնող stub-ը կարող է լուռ ընտրել սխալ երթուղին։
Այդ նախաձեռնումից հետո հիմնական կանչը Jint 4.4.0-ում կարող է այսպիսի տեսք ունենալ.
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();engine-ը կարգավորված Jint.Engine-ն է, pacSource-ը՝ ստացված PAC ծրագիրը։ destination.IdnHost-ը տրամադրում է հոսթի անունը առանց պորտի կամ ուղու։ Այս կանչը ոչ PAC է ստանում, ոչ էլ պրոքսի միացում է բացում։
Կանչից հետո
Մեկնաբանեք PROXY proxy.example:8080; DIRECT-ի նման արդյունքը որպես երթուղու թեկնածուների և պահուստային տարբերակի դասավորված ցանկ։ Ամբողջ տողը որպես պրոքսի URL փոխանցելը կորցնում է դրա իմաստը։ Գնահատման ձախողումը տարանջատեք բացահայտ DIRECT արդյունքից։
Կատարման ընթացքում
Կարգավորեք Jint-ի տևողության, հայտարարությունների, հիշողության և չեղարկման սահմանափակումները և բացեք միայն անհրաժեշտ հոսթ-ֆունկցիաները։ Սահմանափակեք DNS պատասխանները առանձին. JavaScript-ի կատարման ստուգումները կամայական արգելափակող հոսթ-կանչը չեն դարձնում ընդհատվող։ Հերթականացրեք շարժիչի հասանելիությունը կամ զուգահեռ աշխատանքին տվեք առանձին սեփականությամբ օրինակներ. շարժիչները անվտանգ չեն միաժամանակյա օգտագործման համար։
Դիտարկիչների PAC իրականացումները կարող են տարբերվել օգնականների ընդլայնումներով և բացահայտվող URL մանրամասներով, հատկապես HTTPS-ի համար։ Մեկ նմուշային արդյունքի համընկնումն ապացուցում է ավելի քիչ, քան դիտարկիչի երթուղայնացման վարքագծի համընկնումը։