Недавно WordPress-разработчики со всего мира провели лайв-встречу, чтобы продолжить обсуждение предложения по автоматическому обновлению старых сайтов до версии 4.7. Идея заключалась в том, чтобы постепенно обновлять сайты с одной крупной версии до другой. Дискуссию возглавлял Эндрю Нейсин; ему помогали Иэн Данн и Джейк Спёрлок.
Судя по ответам участников во время встречи, было несколько несогласных, которые противились обновлению старых сайтов без явного согласия их владельцев. Такое согласие порой затруднительно получить, поскольку письма не всегда доходят до нужного адресата.
Большинство участников склоняются к поиску наилучшей реализации для продвижения данного предложения. Это может быть полезно для пользователей, которые могут не знать, что они используют устаревшую версию WordPress, а также для тех пользователей, которые забросили свои сайты. Если владельцы сайта предпочитают работать с более старыми версиями WordPress, они могут просто отказаться от автообновлений, и такие осознанные решения будут учитываться системой.
Данн сказал, что дискуссия нужна была для того, чтобы «выслушать идеи и приблизиться к какому-либо решению». Поначалу разговор шел о маркетинговых и технических деталях, а не о том, нужно ли вообще автоматически обновлять WordPress-сайты до основных версий.
«Мне кажется, что для этого требуется серьезный маркетинговый толчок», — заявил Спёрлок. Он привел три варианта, которые команда безопасности сформулировала для старых сайтов:
Отключить обновления безопасности для старых сайтов.
Продолжать выпускать обновления безопасности (что будет обходиться дороже).
Оставить старые сайты без обновлений (чтобы можно было обновиться только вручную).
«Стоит отметить, что владельцы таких сайтов уже более 6 лет получают уведомления в панели администратора», — рассказал Нейсин. – «Самые старые сайты уже получили порядка 30 электронных писем. Думаю, что способ уведомления владельцев таких сайтов о введении поддержки автообновлений должен отличаться от того, что было, когда мы хотели подтолкнуть пользователя к обновлению сайта с версии 3.7, до, скажем, 3.8 и выше».
Разработчики изучают последствия того, если старые сайты останутся без обновлений
Разработчик ядра Зебулан Стэнфилл был одним из наиболее ярых противников автообновления до крупных версий без согласия владельца сайта.
«Возможность автообновления в 3.7 не включала в себя главные релизы, поэтому, на мой взгляд, обманчиво менять ее сейчас», — отметил Стэнфилл. – «В итоге мы выходим за рамки того, что нам разрешил владелец сайта. Я нормально отношусь к тому, чтобы автоматические обновления до главных версий стали базовыми в новых релизах, но применять это задним числом, ретроактивно, на мой взгляд, неправильно».
Гэри Пендергаст, разработчик ядра, возразил на это: проблема заключается в том, что миллионы владельцев сайтов не заметят уведомления и будут пользоваться старыми версиями, которые в конечном итоге станут небезопасными. Стэнфилл утверждал, что разработчики WordPress не должны обновлять сайты за пользователей, если те не давали на то разрешения.
Пендергаст на это возразил: «мы несем ответственность за то, чтобы не сформировать ботнет на базе значительной части сети».
WordPress охватывает гораздо большую часть сети, нежели в далеком 2013 году, когда и была введена функция автообновления (в релизе 3.7). Рыночная доля платформы выросла до 34.5% среди 10 млн самых популярных сайтов по состоянию на август 2019 года. По неофициальным оценкам, в данный момент насчитывается около 2 млн сайтов под управлением WordPress 3.7.
«Если мы невольно предоставим кому-то платформу, чтобы творить зло, мы столкнемся с очень серьезными последствиями», — отметила Мэри Баум, разработчик ядра.
Отсутствие явного согласия со стороны пользователя и возможность поломок сайтов – два основных тезиса противников автообновления. Сторонники предложения считают, что все это можно провести без вывода из строя миллионов веб-сайтов. Бывший руководитель команды безопасности Аарон Кэмпбелл подчеркнул преимущества постепенного развертывания обновлений:
«Если взять пользователей релиза 3.7 за основу (что является частью плана, предложенного Иэном), то в таком случае мы можем предложить им постепенное обновление от одной версии к другой. Кнопка в консоли 3.7 позволяет обновить сайт до версии 5.2, что по понятным причинам отпугивает человека. Мы будем обновлять 3.7 до 3.8, затем 3.8 до 3.9 и т.д. В итоге мы обновим 4.6 до 4.7. Это и будет плавным переходом от 3.7 до 4.7 и позволит нам при необходимости доработать этот процесс на разных участках.
Я считаю, что у такого перехода есть свои преимущества. Например, все изменения в БД будут развертываться порциями, по аналогии с тем, как они были реализованы за последние 6 лет. Нам не нужно будет вносить их в одно крупное обновление. Это приведет к меньшему количеству ошибок с памятью и временем исполнения.
Как уже было отмечено в прошлых обсуждениях, план команды разработчиков ядра всегда заключался в том, чтобы реализовать автообновления для главных версий:
Нейсин отметил: «Я хочу поделиться историей и контекстом: естественно, официально поддерживается только последняя версия WordPress. Автоматические фоновые обновления в 3.7 (октябрь 2013) внесли существенные изменения – впервые мы смогли передавать релизы безопасности для старых ветвей. Однако мы не анонсировали и не документировали эти старые версии […] У нас не было намерения – и до сих пор нет – менять нашу политику, согласно которой официально поддерживается только последняя версия WordPress».
«Мы ожидали более быстрого прогресса в области автообновлений для крупных релизов, повышая безопасность и отказоустойчивость этих обновлений. Все это позволило бы нам обновить старые сайты, начиная с версии 3.7, до более поздних версий. Таков был план. Мы просто не ожидали, что нам понадобится 6 лет, чтобы прийти к текущей ситуации».
Долгосрочная цель заключается в том, чтобы предлагать обновления до крупных версий по умолчанию, как только они докажут свою стабильность. Предложение по автообновлению старых версий до 4.7 станет следующим шагом в этом направлении. Нейсин считает, что владельцы старых сайтов уже дали свое согласие на обновление, поскольку они установили WordPress 3.7+.
В какой-то момент встречи дискуссия, касающаяся этики автообновления старых сайтов до версии 4.7, переключилась на примеры с разными аналогиями из реального мира, чтобы подчеркнуть убедительность того или иного мнения.
«Сложно говорить об автономии для сайтов, которые фактически были заброшены», — отметил Марк Джекит. – «К примеру, если вы свалитесь мертвым на улице, общество не позволит вам сгнить там только потому, что вы не давали своего согласия на похороны».
Разработчик ядра Джон Джеймс Джейкоби отметил, что он не слишком доволен предполагаемым согласием владельца сайта (opt-out), но в конечном счете он согласен, что «это так или иначе должно произойти».
«Если перефразировать Марка, то я считаю, что WP не должен убирать трупы из сети, пока не появится большой мета-блок в консоли, в котором будет сказано: ‘Эй, нам пришлось это сделать за вас, и вот почему’», — резюмировал Джон.
Другие разработчики более решительно выступили против изменения файлов WordPress на серверах пользователей, поскольку изначально в релизе 3.7 было сказано о том, что автообновления будут применяться только к релизам безопасности, но не к главным версиям (что включалось отдельно).
«Я категорически против того, чтобы программы выполняли неожиданные крупные автообновления», — отметил Габор Яворски. – «Ядро WordPress не имеет полномочий по изменению кода на моем сервере без моего явного согласия. Я готов к тому, чтобы обновлялись минорные версии, поскольку я сам соглашался на это, и именно так по умолчанию и работает текущее автообновление. Я могу разрешить обновления до главных версий, и я могу вообще запретить какие-либо обновления. Если WP отвергает этот выбор, то это неправильно».
Майкл Панага считает, что пользователи скорее примут тот факт, что их старые сайты были взломаны, нежели то, что их сайты сломались из-за несанкционированного автообновления. Противники этого предложения не считают, что ответственность WordPress распространяется на предотвращение взлома сайтов пользователей, даже если таких сайтов миллионы. Это проблема пользователей, что они работают со старым ПО. Максимум это можно назвать областью ответственности хостинг-компаний.
«Наша философия заключается в том, что мы не считаем, что ответственность за взлом сайта лежит только на пользователе», — отметил Нейсин. – «Мы тоже чувствуем эту ответственность и собираемся сделать абсолютно все, что в наших силах, чтобы сайты пользователей постоянно обновлялись и на них работала самая последняя, самая лучшая версия WordPress».
Официального решения объявлено не было. Однако те, кто наделен полномочиями по осуществлению плана, настроены очень решительно. Похоже, что они добились определенного консенсуса на последней встрече.
Нейсин поблагодарил участников за то, что они поделились своими мнениями в ходе дискуссии, и сказал, что в ближайшие дни будут опубликованы некоторые последующие посты, и, возможно, дорожная карта, документирующая ранние решения вплоть до 2007 года.
«Я очень рад, что вы все пришли, чтобы поговорить на эту тему», — рассказал Нейсин. – «Даже спустя 10 лет я по-прежнему очень впечатлен сообществом WordPress и тем, насколько оно заботится о своих пользователях. Сеть заслуживает этого».
Источник: wptavern.com