Joomla предоставляет возможность добавить сервер обновлений, позволяющий пользователям устанавливать обновление расширений при выпуске одним нажатием кнопки.
Это, конечно, отлично подходит для бесплатных расширений, однако для коммерческих расширений можно столкнуться с проблемой, когда кто-то может просто получить URL-адрес для загрузки из XML-файла обновления и опубликовать его, так что это бесполезно.
То, что я имел в виду, делал что-то в том же духе, но он просто уведомлял бы пользователей о наличии обновлений, и им приходилось заходить на сайт разработчика и загружать их вручную, однако я не использовал подписку. расширения, таким образом, нет никаких специальных разрешений для доступа к этим коммерческим расширениям. Вместо этого я использовал компонент, который просто позволяет пользователю приобрести расширение и все.
Итак, мой вопрос, есть ли встроенный метод, который я не знаю, который позволяет серверу обновлений для коммерческих расширений? Я верю, что помню, что это обсуждалось очень давно, но не уверен, было ли что-то реализовано в Joomla для этого.
Или, может быть, вместо этого было бы идеей запретить прямой доступ к XML, если в браузере ввести URL-адрес с помощью файла htaccess ?
Примечание : я имею в виду модуль, иначе я мог бы посмотреть что-то вроде Akeeba Live Update
источник
Ответы:
Моя версия реализации будет ...
Клиент: - Просто дайте каждому подписанному пользователю уникальный (секретный) ключ и просто передайте его как переменную GET при проверке новых обновлений.
Сервер: - Аналогично, просто проверьте входящие запросы для этой переменной и сопоставьте ее с базой данных
cool? allow : deny;
.Неправильное использование: - Ведите учет каждого используемого ключа и задайте количество допустимых запросов, после которого просто пометьте этот ключ и его пользователя как подозрительные, затем делайте все, что вы думаете, как делать, предупреждая этого пользователя, блокировка на какое-то время или просто прекращение подписки ... и т.д. возможности безграничны.
источник
allow
означает, что сервер решил отправить файл обновления в ответ.