В целом, при установке серверов преобладает мнение, что они должны быть как можно более упрощенными. Для этого есть несколько причин, но на самом деле они не применяются напрямую к вашему вопросу о компиляторе:
- Сведите к минимуму использование ресурсов. GCC может занимать немного дополнительного места на диске, но, вероятно, недостаточно, чтобы иметь значение — и он не будет работать большую часть времени, поэтому использование ЦП/памяти невелико. беспокойство.
- Свести к минимуму сложность. Сборка на вашем сервере может добавить еще несколько режимов сбоя в ваш процесс сборки (если вы строите в другом месте, то, по крайней мере, вы заметите что-то не так прежде, чем начнете возиться со своим рабочим сервером), но в противном случае это не будет мешать.
- Сведите к минимуму поверхность атаки. Как отмечали другие, к тому времени, когда злоумышленник сможет использовать компилятор, вы, вероятно, уже облажались.
В моей компании обычно не слишком заботятся о том, установлены ли компиляторы на наших серверах, но мы также никогда не запускаем pip
на наших серверах по несколько иной причине. Нас волнует не то, где создаются пакеты, а то, когда и как они загружаются.
Особенно параноики из нас заметят, что pip (и easy_install) с радостью установят пакеты из PYPI без какой-либо формы аутентификации (без SSL, без подписей пакетов, ...). Кроме того, многие из них на самом деле не размещены на PYPI; pip и easy_install следуют перенаправлениям. Итак, здесь есть две проблемы:
- Если pypi или любой другой сайт, на котором размещены ваши зависимости, выйдет из строя, процесс сборки завершится ошибкой.
- Если злоумышленнику каким-то образом удастся выполнить атаку «человек посередине» на ваш сервер, когда он пытается загрузить пакет зависимостей, он сможет вставить вредоносный код в загрузку.
Таким образом, мы загружаем пакеты при первом добавлении зависимости, делаем все возможное, чтобы убедиться, что источник является подлинным (это не является надежным), и добавляем их в нашу собственную систему контроля версий. На самом деле мы собираем наши пакеты на отдельном сервере сборки, но это менее важно; мы просто находим полезным иметь бинарный пакет, который мы можем быстро развернуть в нескольких экземплярах.
person
akgood
schedule
01.05.2012