Сервер обновлений для коммерческих расширений

8

Joomla предоставляет возможность добавить сервер обновлений, позволяющий пользователям устанавливать обновление расширений при выпуске одним нажатием кнопки.

Это, конечно, отлично подходит для бесплатных расширений, однако для коммерческих расширений можно столкнуться с проблемой, когда кто-то может просто получить URL-адрес для загрузки из XML-файла обновления и опубликовать его, так что это бесполезно.

То, что я имел в виду, делал что-то в том же духе, но он просто уведомлял бы пользователей о наличии обновлений, и им приходилось заходить на сайт разработчика и загружать их вручную, однако я не использовал подписку. расширения, таким образом, нет никаких специальных разрешений для доступа к этим коммерческим расширениям. Вместо этого я использовал компонент, который просто позволяет пользователю приобрести расширение и все.

Итак, мой вопрос, есть ли встроенный метод, который я не знаю, который позволяет серверу обновлений для коммерческих расширений? Я верю, что помню, что это обсуждалось очень давно, но не уверен, было ли что-то реализовано в Joomla для этого.

Или, может быть, вместо этого было бы идеей запретить прямой доступ к XML, если в браузере ввести URL-адрес с помощью файла htaccess ?

Примечание : я имею в виду модуль, иначе я мог бы посмотреть что-то вроде Akeeba Live Update

Лоддер
источник
1
Я бы связался с одним из производителей расширений, которые уже делают это. Ребята из Rocket Theme создали свой собственный плагин, который проверяет работу своего сервера и все еще использует встроенный механизм обновления. Akeeba делает это без дополнительного плагина, но будет обновлять, если ваш код введен в настройках компонента. Вы также можете спросить парней watchful.li, как их система может использовать все это и запустить обновление для вас. Кто-то может быть готов рассказать вам о том, как они это делают.
Брайан Пит
@BrianPeat - спасибо за ваш вклад. Я нашел коммит на Github от Ника из Akeeba, который позволяет, однако, именно то, что я хочу (и, возможно, это только у меня момент блондинки), но я не чувствую, что «руководство разработчика» достаточно. Здесь не упоминается, где разместить код. Человек, с которым я работаю, попросит у него более подробную информацию по этому вопросу, так что, надеюсь, это меня куда-нибудь уведет
Лоддер

Ответы:

5

Моя версия реализации будет ...

Клиент: - Просто дайте каждому подписанному пользователю уникальный (секретный) ключ и просто передайте его как переменную GET при проверке новых обновлений.

Сервер: - Аналогично, просто проверьте входящие запросы для этой переменной и сопоставьте ее с базой данных cool? allow : deny;.

Неправильное использование: - Ведите учет каждого используемого ключа и задайте количество допустимых запросов, после которого просто пометьте этот ключ и его пользователя как подозрительные, затем делайте все, что вы думаете, как делать, предупреждая этого пользователя, блокировка на какое-то время или просто прекращение подписки ... и т.д. возможности безграничны.

Мохд Абдул Муджиб
источник
что происходит после того, как сервер ответил «разрешить»? Другими словами, как эта проверка работает вместе с сервером обновлений?
Малайзельван
allowозначает, что сервер решил отправить файл обновления в ответ.
Мохд Абдул Муджиб
Спасибо @ 9ksoft. Ваше решение позволит пользователю загрузить обновленное расширение. Я считаю, что это не может сделать автоматическую установку с использованием сервера обновлений, верно? Или у вас есть решение сделать автоматическое обновление после проверки? Извините за то, что задали много вопросов .... :-)
Malaiselvan