Как параноик-сисадмин может быть в курсе последних стабильных версий PHP? (исправления безопасности приходили довольно регулярно).
Это производственный сервер, и поэтому "взломанные вещи" пугают моего парня до смерти. Время простоя для обслуживания не проблема.
В частности, мы используем последнюю версию Suse Enterprise Linux, но общий или более общий ответ вполне приемлем.
Как вы обрабатываете обновления безопасности для производственных машин? Что мы так не знаем о том, что этот парень так напуган, чтобы просто использовать менеджер пакетов для «обновления»?
Любой совет?
Ответы:
Я работаю с PHP так же, как и со всем остальным: сначала обновите среду разработки (производственный клон VMWare), регрессивно протестируйте ее, а затем продвиньте ее в производство, используя те же шаблоны развертывания, которые мы использовали для хостов VMWare. (Если вы используете менеджеры пакетов для ваших обновлений, вы бы использовали те же пакеты).
В качестве дополнительного уровня изоляции наша производственная среда состоит из парных резервных хостов, и один хост извлекается из производственной ротации для его обновления, а затем тщательно тестируется, прежде чем мы переключимся на этот хост для обновления его партнера.
Как правило, обновления безопасности применяются как можно скорее, а обновления, не связанные с безопасностью / некритическими исправлениями ошибок, применяются ежеквартально, чтобы минимизировать время простоя.
источник
PHP находится в моем верхнем списке вещей, которые нужно обновлять до текущей версии. Я доверяю этому меньше, чем большинству вещей.
В конечном итоге, вам лучше всего просмотреть каждый список изменений от текущей версии до последней и ощутимо взвесить риск.
Если вы говорите об обновлении минорных версий, таких как 5.3.1 до 5.3.2, я бы не стал сильно беспокоиться.
Если вы обновляете с версии 5.2.x до 5.3.x, вы, вероятно, столкнетесь с некоторыми проблемами совместимости.
Если вы используете системные пакеты, как правило, в дистрибутивах не будет обновлений, которые нарушат существующую производительность. RHEL и CentOS исправляют старые версии, пока не выйдет основной дистрибутив. Обычно это тестирование для вас, что снижает риск. Я ожидаю, что предприятие SuSE будет похожим.
Для путей обновления лучше всего создать тестовый сервер и протестировать приложение на последней версии перед обновлением производства.
источник
Другой, менее ценный ответ - создать белый список разрешенных URL-адресов и функций. В Apache вы можете сделать это, комбинируя функции прокси и перезаписи.
По сути, вы делаете две установки, одна из которых имеет урезанную конфигурацию: прокси, перезапись и отсутствие выполнения кода; и т. д. Любой «разрешенный» URL (с параметрами и т. д.) передается во второй установке.
Затем добавьте себя в список разработчиков PHP и внимательно следите за заметками о выпуске. Каждый раз, когда вы видите что-то, что может быть уязвимостью безопасности, вы создаете прокладку в первой установке, чтобы обнаружить этот тип ошибки, и отправляете пользователю ошибку.
В такой конфигурации вы захотите перенаправить POST в фильтр (если вам вообще нужен POST; некоторые сайты отлично справляются, разрешая POST только с некоторых IP-адресов!), Который может искать разрешенные источники и предварительно проверить все.
Создание такого белого списка занимает очень много времени, но для критически важных приложений, которые должны работать дольше, чем стабильный срок службы PHP (который, кажется, составляет всего несколько лет), это может быть отличным способом использовать большое количество PHP приложения, не получая их уязвимости, а также.
источник
В дополнение к вышесказанному вы можете включить откат пакета на всякий случай.
Затем, если что-то не работает в процессе производства, и вы абсолютно уверены, что оно работает нормально в процессе разработки , вы можете, по крайней мере, быстро отменить изменения, прежде чем устранять проблему.
Посмотрите пакет Rollback YUM для примера в Yum. Я уверен, что другие системы управления пакетами имеют подобное.
Я знаю, что это пояс и брекеты, и я согласен с Warner с точечными релизами. Незначительные изменения не должны сломать ничего. Лично у меня не было проблем с обновлением PHP, но всегда лучше быть в безопасности, чем потом сожалеть.
источник