Концепция безопасности
Мы в Pimcore очень серьезно относимся к безопасности и рекомендуем многослойную концепцию безопасности, чтобы сохранить решения на основе Pimcore безопасный.
Поскольку Pimcore-это структура, а не решение из ящика, эта многослойная концепция безопасности имеет части, которые предоставляется самим основной структурой и частями, которые должны быть предоставлены партнером по решению, Это доставляет решение.
Pimcore Core Level
Следующие стандарты кодирования и лучшие практики
Чтобы свести к минимуму риск проблем безопасности, мы следуем установленным и проверенным стандартам кодирования PHP, а также в отрасли лучше всего практики. Стандарты кодирования основаны на так называемых PSR (рекомендации по стандартам PHP), разработанные PHP Framework Interop Group (PHP-FIG) и применяется во время нашего процесса непрерывной интеграции в GitHub.
Pimcore также является голосовавшим членом PHP-FIG.
Управление зависимостями
Pimcore основан на структуре Symfony (PHP Industry Standard Framework) и нескольких дополнительных компонентах и зависимости. Все зависимости управляются через композитор (стандартное решение управления зависимостями PHP), которое производит Легко и комфортно, чтобы все зависимости от Pimcore и вашего проекта были в курсе и безопасно.
Поскольку Pimcore является приложением Symfony, он может использовать все инструменты Symfony, такие как Symfony Security Checker.
Политика безопасности контента
Pimcore предоставляет обработчик политики безопасности контента, который позволяет дополнительный уровень безопасности для защиты от определенных атак, таких как сценарии поперечного сайта (XSS) и впрыск данных и т. Д., Добавив Content-Security-Policy HTTP-заголовок с нон в каждый запрос в интерфейсе администратора. Сгенерированная строка, кодируемая незей, сопоставлена с указанной в ссылке или встроенном JavaScript, который позволяет их безопасно выполнять.
Политика безопасности контента включена по умолчанию.
Узнайте больше о Политика безопасности контента.
Чтобы разрешить внешние URL -адреса для каждой директивы, добавьте пользовательскую конфигурацию в config/config.yaml и предоставьте список в конфигурации:
# config/config.yaml
pimcore_admin:
admin_csp_header:
additional_urls:
script-src:
- 'https://oreo.cat/scripts/meow.js'
- 'https://bagheera.cat/*'
style-src:
- 'https://oreo.cat/scripts/meow.css'
To disable CSP set the enabled property to false in your configuration:
# config/config.yaml
pimcore_admin:
admin_csp_header:
enabled: false
In case, you are using third party bundles or custom implementation that extends the admin backend interface with custom views then you would need to use generated nonce string in your scripts. If a script does not contain valid a nonce, then it is stopped from being executed wih a warning in console like:
Refused to execute inline script because it violates the following Content Security Policy directive: ...
This issue can be resolved either by using Pimcore Расширение HeadScript or add nonce script to inline scripts as follows:
<script {{ pimcore_csp.getNonceHtmlAttribute()|raw }}>
Обработка проблем безопасности
В случае проблемы безопасности/уязвимости в базовой структуре Pimcore, мы обрабатываем их со следующей процедурой:
* Проблема с отчетностью : Отчет о выпуске через [Консультативный механизм по безопасности GitHub](https://pimcorehq.wufoo.com/forms/pimcore-security-report/ соответствующего репозитория, например, для {p5}. Не через публику Трекер выпуска (в соответствии с руководящими принципами также доступны на публичном трекере)! * Решение проблемы :
- Зарегистрированная проблема направлена непосредственно в команду Pimcore Core, проверена и, если подтверждено, решены на следующих шагах
- Отправить подтверждение репортеру с официальным заявлением
- Работа над патчем
- Если еще не доступно, получите идентификатор CVE
- Опубликовать патч и/или новый выпуск Pimcore
- Опубликовать объявление о безопасности, по крайней мере, затронутые версии, возможные эксплойты и как исправить/обновить
Специфичный уровень проекта (предоставленный партнером по интеграции)
Следующие стандарты кодирования и лучшие практики
То же, что и для основной разработки, мы рекомендуем применить все стандарты кодирования и лучшие практики для разработки решений слишком.
Управление зависимостями
То же, что и для основной разработки, мы также рекомендуем проверки безопасности для всех дополнительных зависимостей решения. Также Для решений все инструменты Symfony, такие как {p6} можно использовать.
Тестирование на проникновение в специфическое проникновение в проект
Тестирование на проникновение в специфику для проекта должно раскрыть возможные проблемы безопасности в реализации решения. Это тестирование Должно быть сделано в системах постановки без дополнительных уровней безопасности, таких как WAF (брандмауэр веб -приложения) или IPS (Системы защиты вторжений) и должны охватывать все {p7}.
Лучшие результаты ожидаются, когда это тестирование проводится сторонним партнером.
WAF & IPS в производственных системах
Брандмауэры веб -приложений и системы защиты от вторжения - это системы, которые расположены перед применением, анализируют все трафик и попытайтесь отфильтровать вредоносные мероприятия.
В качестве стандартного приложения PHP, Pimcore поддерживает все отраслевые стандартные продукты, такие как Modsecurity, гарантия WAF Облачная вспышка и другие. Который использовать, зависит от фактической ИТ -инфраструктуры. Для использования бэкэнда Pimcore, некоторые Дополнительные правила могут быть необходимы.
WAF и IPS в производственных системах должны быть последней сетью безопасности в многослойной концепции безопасности.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.