Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ дополнСниям Chrome Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ внСшний ΠΊΠΎΠ΄, нСсмотря Π½Π° ΠΏΡ€Π°Π²Π° доступа

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π² любом Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊ Chrome Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выполнСния внСшнСго JavaScript-ΠΊΠΎΠ΄Π° Π±Π΅Π· прСдоставлСния дополнСнию Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ (Π±Π΅Π· unsafe-eval ΠΈ unsafe-inline Π² manifest.json). ΠŸΡ€Π°Π²Π° доступа ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π±Π΅Π· unsafe-eval Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄, входящий Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ поставку, Π½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² контСкстС дополнСния любой JavaScript, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ с внСшнСго сайта.

Π’ настоящСС врСмя компания Google Π·Π°ΠΊΡ€Ρ‹Π»Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ доступ ΠΊ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρƒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, Π½ΠΎ Π² Π°Ρ€Ρ…ΠΈΠ²Π΅ сохранился ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для эксплуатации ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Бпособ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΎΠ±Ρ…ΠΎΠ΄Π° ограничСния script-src ‘self’ Π² CSP ΠΈ сводится ΠΊ подстановкС Ρ‚Π΅Π³Π° script Ρ‡Π΅Ρ€Π΅Π· document.createElement(‘script’) ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π½Π΅Π³ΠΎ внСшнСго содСрТимого Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fetch, послС Ρ‡Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² контСкстС самого дополнСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ