Вопрос или проблема
Я работаю над приложением на Drupal и недавно получил CVE-2021-46708 для пакета swagger-ui-dist. В уведомлении указано, что версия $$VERSION и указаны уязвимости, исправленные в версии 4.1.3. Вот моя настройка:
- Я загрузил swagger-api/swagger-ui напрямую из репозитория GitHub (https://github.com/swagger-api/swagger-ui.git) с помощью composer, и swagger-ui-dist идет в комплекте в zip-файле. В файле package.json в swagger-ui-dist версия указана как $$VERSION и не обновляется.
- swagger-ui и swagger-ui-dist находятся в web/libraries/swagger-api/swagger-ui/swagger-ui-dist-package.
Мои вопросы:
- Как я могу убедиться, что правильно обновляю swagger-ui-dist до версии 4.1.3 или выше?
- Есть ли рекомендованный способ управления этим пакетом в среде Drupal, особенно учитывая, что он установлен в web/libraries?
- Как я могу убедиться, что мой composer.lock обновляется соответствующим образом, чтобы предотвратить будущие проблемы?
Буду признателен за любые рекомендации по лучшим практикам управления такой зависимостью вручную или через Composer в настройках Drupal.
Я пытался вручную заменить swagger-ui-dist на более новую версию, но не могу найти swagger-ui-dist на Packagist, чтобы добавить его как зависимость.
Ответ или решение
Обновление пакета swagger-ui-dist в установке Drupal для устранения уязвимостей – это важная задача для экспертов в области информационных технологий. Учитывая ваш запрос о последней версии этого пакета (4.1.3 или выше), хочу предложить вам детальное руководство по правильному обновлению.
Шаг 1: Понимание уязвимости
CVE-2021-46708 указывает на проблемы в предыдущих версиях swagger-ui-dist, которые были устранены в версии 4.1.3. Поэтому обновление вашего текущего пакета является критически важным для поддержания безопасности вашего приложения.
Шаг 2: Удаление текущей версии swagger-ui-dist
-
Перейдите в директорию, где установлен swagger-ui-dist:
cd web/libraries/swagger-api/swagger-ui/swagger-ui-dist-package
-
Удалите текущую версию swagger-ui-dist. Это можно сделать вручную, удалив файлы, или с помощью команды:
rm -rf swagger-ui-dist
Шаг 3: Загрузка новой версии swagger-ui-dist
-
Скачайте последнюю версию swagger-ui напрямую с GitHub или используйте
composer
для установки. Однако, так как вы упомянули, что не смогли найти swagger-ui-dist на Packagist, рекомендую скачать zip-файл вручную:- Перейдите по ссылке swagger-ui-releases.
- Найдите версию 4.1.3 или выше и загрузите архив.
-
Распакуйте загруженный архив и переместите содержимое папки
dist
в вашу директорию:mv swagger-ui/dist/* web/libraries/swagger-api/swagger-ui/swagger-ui-dist-package/swagger-ui-dist/
Шаг 4: Обновление composer.lock
Чтобы убедиться, что ваш проект правильно отслеживает изменения, логическое продолжение – это обновление или создание файла composer.json. Если вы используете composer для управления зависимостями, вам нужно будет добавить или обновить следующее:
-
Создайте или обновите
composer.json
в корне вашего проекта, добавив swagger-ui как зависимость. Например:{ "require": { "swagger-api/swagger-ui": "^4.1.3" } }
-
Затем выполните команду:
composer update
Это обеспечит обновление composer.lock
, что важно для предотвращения конфликтов в будущем.
Шаг 5: Рекомендации по управлению зависимостями
- Следите за версиями пакетов и периодически проверяйте их на наличие обновлений.
- Вы можете рассмотреть авторизацию на Packagist, если планируете использовать дополнительные библиотеки.
- Рассмотрите возможность создания автоматизированных тестов, чтобы убедиться в устойчивости вашего приложения после обновления библиотек.
Заключение
При выполнении всех этих шагов вы обеспечить безопасность вашего Drupal-приложения и поддерживать актуальность используемых пакетов. Следуя данным рекомендациям, вы сможете эффективно управлять зависимостями и минимизировать риск возникновения уязвимостей в будущем.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за поддержкой. Успехов в обновлении!