Π 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 Π΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΊΠ°ΡΠΎ Π½Π΅ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΡΠ»Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½ Π² Π²Π΅ΡΡΠΈΡ 5.0.0 Π½Π° pac-resolver, ΠΊΠΎΡΡΠΎ Π΅ ΠΌΠΈΠ³ΡΠΈΡΠ°Π»Π° ΠΊΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° 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
