Команда безопасности WordPress изучает различные подходы к бэкпорту исправлений безопасности в более старые версии CMS. Объем работ в сфере поддержки версий до 3.7 (когда появились автоматические фоновые обновления) с каждым новым релизом серьезно увеличивается.
«При выпуске обновлений безопасности команде WordPress Security Team необходимо протестировать не только текущую версию WordPress, но еще и все крупные версии вплоть до 3.7 – скорректировать изменения, создать правки кода и т.д.», — рассказал руководитель команды безопасности Джейк Сперлок. – «С выходом 5.3 у нас будет более 15 основных релизов WordPress для долгосрочной поддержки».
Джейк отметил, что версия 3.7 установлена на 0,1% сайтов с WordPress, однако он также добавил, что поддержка старых версий требует «большого количества энергии, времени, что сильно снижает эффективность работы команды».
Отвечая на вопрос, сколько времени уходит на это, Джейк отметил, что все зависит от того, сколько тикетов/проблем необходимо портировать. Все исправления проверяются, тестируются и передаются несколькими членами команды. В команде около 50 экспертов по безопасности, многие из которых работают в Automattic, однако некоторые являются волонтерами.
«Проблема разработки релизов безопасности для более старых версий WordPress заключается в том, что объем задач по тестированию и реинжинирингу является специфичным для каждой старой версии WP», — отметил Джейк. – «Приведу простой пример. WordPress 4.2 получил достаточно большой рефакторинг, поэтому бэкпорт в данном случае требует дополнительного тестирования и обеспечения работы для многочисленных исправлений. Заставить набор тестов работать на более старых версиях не менее сложно, поскольку в каждой версии были свои изменения кода».
Джейк призвал к обратной связи и идеям по поводу того, как команда безопасности может поддерживать меньшее количество версий WordPress, защитив при этом пользователей. Ведется активная дискуссия, и мнения варьируются от восторженной поддержки до оппозиции.
Предлагались идеи подталкивать пользователей к обновлению через email для администраторов старых установок и/или виджет «Пожалуйста, обновитесь», портированный в старые версии. Резкий переход к более современным версиям WordPress может отпугнуть пользователей, потому некоторые советуют предлагать более эффективные способы инкрементного (постепенного) обновления со старых версий к новым.
«Если наша цель состоит в том, чтобы защитить пользователей WordPress от злоумышленников, нам нужно продолжать поддерживать более старые версии, выпуская для них релизы безопасности», — отметил участник WordPress Рами Юшуваев.
«Wordpress 3.7 охватывает 0.1% всех сайтов на WP, но WordPress 3.0 – 3.6 охватывает уже 1,6% сайтов. Мы не хотим увеличивать количество сайтов, использующих небезопасные версии. При существующей политике ‘старый релиз’ не означает ‘небезопасный релиз’».
«Я думаю, нам нужно обучить пользователей работать только с обновленным программным обеспечением, а не прекращать выпуск релизов безопасности для старых версий».
Некоторые комментаторы выступают за ограничение бэкпорта исправлений безопасности для заданного количества версий, как об этом говорил бывший руководитель команды безопасности WordPress Аарон Кэмпбелл:
«Мне нравится идея поддержки только X версий. В итоге пользователи понимают, что им не нужно обновляться до последней версии, какими бы ни были наши релиз-циклы. В конечном счете мы сможем определить, сколько версий на самом деле реально поддерживать.
Поддержка X лет позволила бы пользователям знать, что они могут избежать обновления в течение определенного периода времени, но это также означает, что команда безопасности не будет всегда поддерживать одно и то же количество версий. Если релизу больше лет, чем наше поддерживаемое время, то в таком случае все пользователи должны будут обновиться до последней версии (исключения могут быть сделаны)».
Стивен Эдгар, один из участников разработки компонента проектирования WordPress, предложил внедрить автоматическое обновление крупных версий, чтобы пользователи продолжили волнообразно переходить к поддерживаемым версиям.
«Возможно, следует поставлять релизы до тех пор, пока не будут выпущены крупные обновления», — рассказал Стивен. – «В настоящее время мы думаем над тем, чтобы добавить крупные исправления в 3.7, после чего повысить 3.7 до 3.8 через автоматические обновления. После этого обновления безопасности больше не будут бэкпортироваться в ветвь 3.7».
«Аналогично, как только крупные обновления для 3.8 будут выпущены, можно будет обновить 3.8 до x.x и прекратить все бэкпорты для 3.8».
Стивен также отметил, что предоставление пользователям опции по установке всех автоматических обновлений для крупных релизов – это один из 9 проектов, которые Мэтт Мулленвег задал на 2019 год.
Другие комментаторы также заявили, что хотели бы видеть в WordPress семантическое управление версиями и политику LTS (долгосрочной поддержки). Затем WordPress должен четко сообщить, сколько лет эти версии будут поддерживаться. Старые сайты могут быть автоматически обновлены до LTS-версии.
По предложенным идеям пока не было принято никакого решения, обсуждение все еще продолжается. Если у вас есть опыт работы со старыми сайтами или вы знаете, как обеспечить безопасность пользователей WordPress при одновременном снижении рабочей нагрузки на команду, оставьте комментарий в публикации Make WordPress Core.
Источник: wptavern.com