Π NPM ΠΏΠ°ΠΊΠ΅ΡΠ° pac-resolver, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 3 ΠΌΠ»Π½. ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ ΡΠ΅Π΄ΠΌΠΈΡΠ½ΠΎ, Π΅ ΠΎΡΠΊΡΠΈΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2021-23406), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ JavaScript ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° HTTP Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ Node.js ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡ.
ΠΠ°ΠΊΠ΅ΡΡΡ pac-resolver ΠΏΠ°ΡΡΠ²Π° PAC ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π²ΠΊΠ»ΡΡΠ²Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡ. PAC ΡΠ°ΠΉΠ»ΡΡ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ JavaScript ΠΊΠΎΠ΄ Ρ ΡΡΠ½ΠΊΡΠΈΡΡΠ° FindProxyForURL, ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠΎΠΊΡΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Ρ ΠΎΡΡΠ° ΠΈ Π·Π°ΡΠ²Π΅Π½ΠΈΡ URL. Π‘ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ Π² ΡΠΎΠ²Π°, ΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ JavaScript ΠΊΠΎΠ΄ Π² pac-resolver Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡ Π² Node.js API VM, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° JavaScript ΠΊΠΎΠ΄ Π² ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° Π΄Π²ΠΈΠΆΠΊΠ° V8.
ΠΠΎΡΠΎΡΠ΅Π½ΠΈΡΡ API Π΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΠΎΡΠ±Π΅Π»ΡΠ·Π°Π½ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΊΠ°ΡΠΎ Π½Π΅ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π΅ Π΄ΠΎΠ²Π΅ΡΠ΅Π½, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΡΠ»Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΡΠ΅ΡΠ΅Π½ Π² ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ pac-resolver 5.0.0, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΎ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° vm2, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ΅Π½ ΠΊΠΎΠ΄.

ΠΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° pac-resolver, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ ΡΡΠ΅Π· ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ PAC ΡΠ°ΠΉΠ» Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ²ΠΎΡ JavaScript ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Node.js, Π°ΠΊΠΎ Π² ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ pac-resolver. ΠΠ°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°ΡΠ° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ Proxy-Agent, ΠΏΠΎΡΠΎΡΠ΅Π½Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° 360 ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ urllib, aws-cdk, mailgun.js ΠΈ firebase-tools, Ρ ΠΎΠ±ΡΠΎ Π½Π°Π΄ ΡΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ ΡΠ΅Π΄ΠΌΠΈΡΠ½ΠΎ.
ΠΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° pac-resolver, Π·Π°ΡΠ΅ΠΆΠ΄Π° PAC ΡΠ°ΠΉΠ», ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ WPAD, ΡΠΎ Π·Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ PAC ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ Π»ΠΈΡΠ° Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΠΏΡΠΎΠΊΡΠΈ ΡΡΠ΅Π· DHCP.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
