Как обеспечить безопасность проекта при использовании пакетов из Composer?
Мы все уже привыкли использовать composer в php проектах, это очень удобно: нашел на гитхабе нужную библиотеку, добавил в проект и задача решена. Но как быть с безопасностью, если проект работает с биллингом или персональными данными, ведь подключаемая библиотека имеет полный доступ к проекту и может, например, сливать наружу любые внутренние данные?
Проверять вручную пакеты - это не реально, ведь каждый пакет ссылается на множество других, а те на третьи и т. д.
Совет "выбирать только проверенные и популярные" - тоже не работает, не всегда нужный пакет будет популярным.
Моя позиция такова. Если вы, как разработчик, не достаточно компетентны, чтобы самостоятельно проверить библиотеку стороннего разработчика на соответствие требованиям безопасности, вы не имеете морального права работать с биллингом и критически важными персональными данными.
Другое дело, что обычно над крупными проектами работает команда разработчиков. В этом случае работает принцип делегирования ответственности.
posters, ну а как конкретно вы проверяете? Каждый файл в папке vendor вручную, после каждого composer update? Или есть какие-то статические анализаторы? Или на уровне сервера решается через фаерволы?
Если вы, как разработчик, не достаточно компетентны, чтобы самостоятельно проверить библиотеку стороннего разработчика на соответствие требованиям безопасности, вы не имеете морального права работать с биллингом и критически важными персональными данными.
1) Каждая версия php имеет свой набор уязвимостей, нужно держать у себя пакеты, которые работают с последними версиями php
2) Для проектов существуют платные сканеры безопасности (vulnerability или security scanner), они могут обнаружить уязвимости в том числе и в пакетах
3) если какая-то логика критически важна и нет доверия к готовым пакетам, то можно написать свой пакет с нуля и подключать его из закрытого корпоративного репозитория