Content Security Policy

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ яндСкс ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΅Π΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² ЦА Π² Ρ„Π°ΠΉΠ» /modules/core/config/config.php Π½ΡƒΠΆΠ½ΠΎ внСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

'backendContentSecurityPolicy' => "default-src 'self' www.hostcms.ru www.youtube.com youtube.com api-maps.yandex.ru; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: *.cloudflare.com *.kaspersky-labs.com api-maps.yandex.ru suggest-maps.yandex.ru *.maps.yandex.net yandex.ru yastatic.net; img-src 'self' chart.googleapis.com data: blob: www.hostcms.ru api-maps.yandex.ru *.maps.yandex.net yandex.ru; font-src 'self'; connect-src 'self' blob: api-maps.yandex.ru suggest-maps.yandex.ru *.maps.yandex.net yandex.ru *.taxi.yandex.net; style-src 'self' 'unsafe-inline' blob:; frame-src 'self' www.hostcms.ru api-maps.yandex.ru; child-src 'self' www.hostcms.ru api-maps.yandex.ru",

Если Ρƒ вас ΡƒΠΆΠ΅ Ρ‚Π°ΠΌ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ свои настройки, Ρ‚ΠΎ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ список настроСк для ЯндСкс

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ c API. ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° многоточия Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… β€” это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ для своСго прилоТСния. Если для ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… источников (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 'img-src *;'), Ρ‚ΠΎ для этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° API ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ.

img-src

Для Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ img-src Π² список Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… источников Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½Ρ‹:

  • https://*.maps.yandex.net (для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚Π°ΠΉΠ»ΠΎΠ²);

  • api-maps.yandex.ru (для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ курсоров ΠΈ Ρ‚. ΠΏ.);

  • enterprise.api-maps.yandex.ru (для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ курсоров Π² ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ вСрсии API);

  • https://yandex.ru.

Π‘ этих Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ изобраТСния API. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ изобраТСния API Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· data:URL, поэтому Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ img-src Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» data:.

img-src data: https://*.maps.yandex.net api-maps.yandex.ru ...;

frame-src

Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ frame-src Π΄ΠΎΠ»ΠΆΠ΅Π½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π΄ΠΎΠΌΠ΅Π½Ρ‹

  • https://api-maps.yandex.ru

  • https://enterprise.api-maps.yandex.ru (для ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ вСрсии API)

Π‘ этих Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Π»ΠΎΠΊ Β«ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² ЯндСкс ΠšΠ°Ρ€Ρ‚Π°Ρ…Β»):

frame-src https://api-maps.yandex.ru ...;
frame-src https://enterprise.api-maps.yandex.ru ...;

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° frame-src ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² CSP вСрсии 1.0; Π² вСрсии 2.0 эта Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° child-src. Однако Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ CSP 2.0, поэтому для обСспСчСния кроссбраузСрной совмСстимости Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ рСкомСндуСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Π΅ эти Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

frame-src https://api-maps.yandex.ru ...;
child-src https://api-maps.yandex.ru ...;
frame-src https://enterprise.api-maps.yandex.ru ...;
child-src https://enterprise.api-maps.yandex.ru ...;

script-src

Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ script-src Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹:

  • https://api-maps.yandex.ru

  • https://enterprise.api-maps.yandex.ru (для ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ вСрсии API)

  • https://suggest-maps.yandex.ru

  • https://*.maps.yandex.net

  • https://yandex.ru

  • https://yastatic.net

Π‘ этих Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ API. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с шаблонами Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ script-src рСкомСндуСтся Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ 'unsafe-eval’ (это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²).

script-src 'unsafe-eval' https://api-maps.yandex.ru
 https://suggest-maps.yandex.ru https://*.maps.yandex.net
 https://yandex.ru ...;

connect-src

Для Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ connect-src слСдуСт Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½Ρ‹:

  • https://api-maps.yandex.ru

  • https://enterprise.api-maps.yandex.ru (для ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ вСрсии API)

  • https://suggest-maps.yandex.ru

  • https://*.maps.yandex.net

  • https://yandex.ru

  • https://*.taxi.yandex.net

connect-src https://api-maps.yandex.ru
 https://suggest-maps.yandex.ru https://*.maps.yandex.net
 https://yandex.ru ...;

style-src

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ стилСй API Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ style-src Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» blob:.

style-src: blob: ...;

API Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ стили Π½Π° страницу Ρ‡Π΅Ρ€Π΅Π· элСмСнт <\link>, содСрТащий blob URL Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ стиля. Если Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ использованиС blob Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ style-src ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ nonce-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, сгСнСрированноС Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π’ этом случаС API Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ стили Ρ‡Π΅Ρ€Π΅Π· inline-элСмСнт <\style nonce="...">.

style-src 'nonce-<Ρ‚ΠΎΠΊΠ΅Π½>' ...;

Π­Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ csp ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ API:

Для бСсплатной вСрсии API:

https://api-maps.yandex.ru/2.1/?apikey=<API-ΠΊΠ»ΡŽΡ‡>&lang=ru_RU&csp[style_nonce]=<Ρ‚ΠΎΠΊΠ΅Π½>

Для ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ вСрсии API:

https://enterprise.api-maps.yandex.ru/2.1/?apikey=<API-ΠΊΠ»ΡŽΡ‡>&lang=ru_RU&csp[style_nonce]=<Ρ‚ΠΎΠΊΠ΅Π½>

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ nonce Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² CSP 2.0 ΠΈ Π½Π΅ поддСрТиваСтся Π² вСрсии 1.0. Однако Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… Π΅Ρ‰Π΅ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CSP 2.0, поэтому для обСспСчСния кроссбраузСрной совмСстимости Π² style-src рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» blob:.

Если для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ рСсурса API ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚Π° (Π»ΠΈΠ±ΠΎ Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹) Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. ΠŸΡ€ΠΈ этом API Π½Π΅ отслСТиваСт, для ΠΊΠ°ΠΊΠΈΡ… рСсурсов ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π°Π΄Π°Π½Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ рСсурсы ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ report-uri.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° прилоТСния:

Content-Security-Policy:
  img-src data: https://*.maps.yandex.net https://api-maps.yandex.ru https://yandex.ru 'self';
  child-src https://api-maps.yandex.ru;
  frame-src https://api-maps.yandex.ru;
  script-src https://api-maps.yandex.ru https://suggest-maps.yandex.ru http://*.maps.yandex.net https://yandex.ru https://yastatic.net 'self';
  connect-src https://api-maps.yandex.ru https://suggest-maps.yandex.ru https://*.maps.yandex.net https://yandex.ru https://*.taxi.yandex.net;
  style-src blob:;

Last updated