ΠΠ°ΠΊΠ΅ΡΡΡ pac-resolver NPM, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π½Π°Π΄ 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ Π½Π° ΡΠ΅Π΄ΠΌΠΈΡΠ°, ΠΈΠΌΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2021-23406), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΡ JavaScript ΠΊΠΎΠ΄ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ° HTTP Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ Node.js ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡ.
ΠΠ°ΠΊΠ΅ΡΡΡ pac-resolver Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° PAC ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠΊΡΠΈΠΏΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ. PAC ΡΠ°ΠΉΠ»ΡΡ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ JavaScript ΠΊΠΎΠ΄ Ρ ΡΡΠ½ΠΊΡΠΈΡ FindProxyForURL, ΠΊΠΎΡΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠΎΠΊΡΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Ρ ΠΎΡΡΠ° ΠΈ Π·Π°ΡΠ²Π΅Π½ΠΈΡ URL Π°Π΄ΡΠ΅Ρ. Π‘ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅, ΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ JavaScript ΠΊΠΎΠ΄ Π² pac-resolver Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ VM API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ Π² Node.js, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ JavaScript ΠΊΠΎΠ΄ Π² ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ V8.
ΠΠΎΡΠΎΡΠ΅Π½ΠΈΡΡ API Π΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΊΠ°ΡΠΎ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΡΠ»Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΡΠ΅ΡΠ΅Π½ Π² pac-resolver 5.0.0, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° vm2, ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄.
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ·Π²ΠΈΠΌΠ° Π²Π΅ΡΡΠΈΡ Π½Π° pac-resolver, Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΡΡ ΡΡΠ΅Π· ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ PAC ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΠΎΡ JavaScript ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Node.js, Π°ΠΊΠΎ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ pac-ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅Π». ΠΠ°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°ΡΠ° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ Proxy-Agent, ΠΏΠΎΡΠΎΡΠ΅Π½Π° ΠΊΠ°ΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ 360 ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ urllib, aws-cdk, mailgun.js ΠΈ firebase-tools, Ρ ΠΎΠ±ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ Π½Π° ΡΠ΅Π΄ΠΌΠΈΡΠ°.
ΠΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠΌΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ pac-resolver, Π·Π°ΡΠ΅Π΄ΠΈ PAC ΡΠ°ΠΉΠ», ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ WPAD, ΡΠΎΠ³Π°Π²Π° Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ ΡΡΠ΅Π· DHCP, Π·Π° Π΄Π° Π²ΠΌΡΠΊΠ½Π°Ρ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ PAC ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru