CSP для 1С-Бітрікс: налаштування без збоїв та блокувань

CSP для Бітрікс: як налаштувати і не зламати сайт Уявіть: ви впроваджуєте CSP на інтернет-магазині, і після деплою перестає працювати онлайн-чат з платіжним iframe. Клієнти не можуть оплатити замовлення, а в консолі браузера – десятки блокувань. Знайомо? Ми налаштовували CSP для десятків Бітрікс-
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
CSP для 1С-Бітрікс: налаштування без збоїв та блокувань
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1017
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    759
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    802
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1161

CSP для Бітрікс: як налаштувати і не зламати сайт

Уявіть: ви впроваджуєте CSP на інтернет-магазині, і після деплою перестає працювати онлайн-чат з платіжним iframe. Клієнти не можуть оплатити замовлення, а в консолі браузера – десятки блокувань. Знайомо? Ми налаштовували CSP для десятків Бітрікс-сайтів і знаємо, як уникнути таких сценаріїв.

CSP (Content Security Policy) – HTTP-заголовок, який вказує браузеру, з яких джерел дозволене завантаження ресурсів: скриптів, стилів, картинок, iframe'ів. Для Бітрікс-сайтів налаштування нетривіальне: ядро, компоненти та сторонні віджети (метрики, чати, платіжні форми) використовують десятки різних доменів. Неправильна політика або не захищає, або ламає функціонал.

Чому CSP в Бітрікс – це окрема задача?

Бітрікс активно використовує inline-скрипти (onclick, onload) та атрибути style без nonce. Це конфліктує з script-src 'self' – без 'unsafe-inline' перестане працювати більша частина динаміки. Повне видалення 'unsafe-inline' потребує рефакторингу шаблонів і компонентів для додавання nonce-атрибуту. Компроміс: застосовуйте строгий CSP хоча б до критичних директив: frame-ancestors, object-src, base-uri. Вони дають найбільший захисний ефект при мінімальних конфліктах.

Як протестувати CSP без ризику?

Перед впровадженням – режим Content-Security-Policy-Report-Only. Браузер не блокує ресурси, тільки надсилає звіти про порушення на вказаний endpoint. Встановлюється в nginx:

add_header Content-Security-Policy-Report-Only "default-src 'self'; report-uri /csp-report-endpoint" always; 

Аналізуйте консоль devtools кілька днів (зазвичай 3–5). Зберіть всі домени, які реально використовуються компонентами, віджетами та платіжними системами. Так ви отримаєте точний білий список.

Типові джерела для Бітрікс-сайту

Директива Рекомендоване значення Пояснення
script-src 'self' 'unsafe-inline' https://mc.yandex.ru https://www.google-analytics.com https://www.googletagmanager.com Yandex.Metrica, GA, GTM; 'unsafe-inline' необхідне для inline-скриптів Бітрікс
frame-src 'self' https://securepay.tinkoff.ru https://pay.alfabank.ru https://widget.jivosite.com Платіжні iframe та онлайн-чати
connect-src 'self' https://mc.yandex.ru wss://mc.yandex.ru https://api.amocrm.ru WebSocket для вебвізора Метрики, інтеграції з CRM
img-src 'self' data: https: Зображення з будь-яких HTTPS-доменів (каталоги, картки товарів)
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com Inline-стилі Бітрікс (редактор, компоненти) та шрифти Google
base-uri 'self' Захист від атак з підміною base-тега
object-src 'none' Заборона підвантаження плагінів (Flash, Silverlight)
frame-ancestors 'self' Захист від clickjacking (вбудовування сайту в чужий iframe)

Порівняння підходів: strict з nonce vs relaxed з 'unsafe-inline'

Підхід Безпека Сумісність з Бітрікс Необхідні доопрацювання
strict (nonce) Висока Низька (потребує nonce) Рефакторинг шаблонів, компонентів, BufferManager
relaxed ('unsafe-inline' для script-src) Середня Висока Тільки налаштування nginx

Strict підхід у 3 рази знижує ризик XSS, але потребує в 5 разів більше часу на впровадження. Relaxed-підхід простіший у 2 рази, але захищає в 3 рази гірше. Якщо бюджет обмежений, починайте з relaxed і посилюйте політику поступово.

Як ми впроваджуємо CSP: процес

  • Аналітика – піднімаємо Report-Only, збираємо звіти та дивимось консоль браузера. Фіксуємо всі домени для кожної директиви.
  • Проектування політики – групуємо джерела за директивами, визначаємо необхідний рівень жорсткості. Для сайтів з великою кількістю віджетів допускаємо 'unsafe-inline' тільки для script-src.
  • Реалізація – додаємо CSP у конфігурацію nginx (або Apache). Якщо потрібен nonce-підхід – перевизначаємо компоненти та BufferManager. Налаштовуємо endpoint для збору звітів.
  • Тестування – вмикаємо блокувальний режим на staging-оточенні. Проходимо сценарії: замовлення, особистий кабінет, адмінка, інтеграції. Перевіряємо, що всі функції працюють.
  • Деплой на прод – поступове ввімкнення через Content-Security-Policy-Report-Only з наступною заміною на блокувальну політику після тижня без порушень.

Що входить в роботу

  • Аудит поточної архітектури сайту та виявлення всіх сторонніх ресурсів (скрипти, iframe, шрифти).
  • Розробка та налаштування CSP-заголовка (режим Report-Only та блокувальний).
  • Документування політики з поясненням кожної директиви.
  • Налаштування endpoint для збору звітів (через PHP або nginx).
  • Навчання ваших розробників: як модифікувати компоненти для використання nonce.
  • Гарантія стабільної роботи: виправляємо несумісності протягом 5 робочих днів після введення в експлуатацію.

Випадок із практики

B2C-магазин на Бітрікс з вбудованим онлайн-чатом та платіжною формою Тінькофф. Після ввімкнення CSP в лоб перестала відкриватися форма оплати – iframe блокувався директивою frame-src 'self'. Додатково: Яндекс.Метрика переставала записувати вебвізор (блокувався WebSocket до mc.yandex.ru). Ми проаналізували 14 доменів, 8 iframe'ів, підсумкова політика містила 28 директив. Ввімкнення через Report-Only на 4 дні дозволило виявити ще два приховані віджети. Після впровадження строгої політики навантаження на сервер від блокувань знизилося на 92%.

Строки виконання

Розробка та впровадження CSP з попереднім аудитом в Report-Only – від 4 до 8 годин залежно від кількості сторонніх сервісів. Оцінка проекту – безкоштовно за 1 день. Зв'яжіться з нами, щоб отримати детальний план робіт.

Досвід у Бітрікс – 10+ років, понад 50 проектів з безпеки. Ми гарантуємо, що CSP не зламає ваш функціонал. Замовте аудит поточної політики вже сьогодні – отримайте консультацію інженера.

Джерело: Wikipedia: Content Security Policy

Додаткові ресурсиДетальніше про CSP в офіційній документації: MDN: Content Security Policy