Данная статья переведена с сайта забугорного разработчика плагина одного известного плагина по игре Майнкрафт: EssentiasX
Вот оригинал — ТЫК
Примечание: этот PSA не касается того, поможем ли мы вам, если вы запустите Mohist. Ответ на этот вопрос можно найти на официальной странице загрузок EssentialsX и в журналах изменений.
Этот PSA посвящен безопасности и опасному поведению со стороны проекта Mohist.
Мы обратили внимание на то, что с 10 апреля 2021 г. Мохист обманом заставляет пользователей удалять официальные jar-файлы плагинов и устанавливать неофициальные модифицированные сборки. Такое поведение не только сомнительно, но и представляет значительный риск для пользователей, которые не знают, какое программное обеспечение они используют.
В результате мы настоятельно рекомендуем вам не использовать и не поддерживать проект Mohist каким-либо образом в будущем.
Мы не можем гарантировать безопасность или функциональность неофициальных сборок EssentialsX, и вам следует по возможности избегать использования Mohist. Существует бесчисленное множество более безопасных и функциональных альтернатив, и они перечислены внизу этой страницы.
На протяжении почти всего времени сосуществования Forge и Bukkit существовало несколько проектов, нацеленных на то, чтобы моды Forge и плагины Bukkit могли работать вместе на одном сервере. Однако проблема в том, что Bukkit никогда не разрабатывался для поддержки модов, и Forge никогда не проектировался для работы с жестким API Bukkit. Это означает, что обычно эти форки требуют значительных изменений в коде сервера CraftBukkit и Forge, и если все сделано неправильно, это приводит к неожиданной работе плагинов и модов.
Эти изменения (и, вероятно, другие тоже), следовательно, нарушают работу нескольких плагинов, включая, помимо прочего, EssentialsX.
Несмотря на предупреждение о том, что эти изменения являются критическими и вызовут проблемы, проект Mohist отказался исправлять свою реализацию Bukkit и вместо этого использовал дополнительные обходные пути, чтобы скрыть проблемы с плагинами.
Это сообщение не только вводит в заблуждение (подразумевая, что EssentialsX виноват, когда реальная проблема находится на стороне Мохиста), но и обманом заставляет пользователей удалить программное обеспечение, которое они загрузили из надежного источника, и запустить произвольный код из неизвестного источника, не сообщая об этом пользователю. что не так с плагином, который они скачали, чем «правильная версия» лучше, или откуда вообще взялась «правильная» версия. Многие пользователи, которые видят это приглашение, не поймут, что Mohist загружает и запускает произвольно измененный код вместо официальных файлов jar-модулей, которые они загрузили. Кроме того, этим механизмом можно очень легко злоупотребить для загрузки вредоносных программ, скрывается за названиями других известных проектов и под предлогом «исправлений».
Есть несколько более эффективных способов, которыми команда Mohist может исправить свои проблемы, но правильный способ таков: написать совместимую реализацию Bukkit API. Другие подобные проекты уже достигают этого,
не полагаясь на обман пользователей для загрузки и выполнения неизвестного кода. Решение Мохиста ввести пользователей в заблуждение, заставив их загрузить ненадежный код, показывает, что они не заботятся о безопасности своих пользователей.
Однако, если вы используете сервер 1.12.2, SpongeForge - это зрелое и хорошо спроектированное решение, которое позволяет запускать обширную экосистему плагинов SpongeAPI вместе с модами Forge. SpongeAPI разработан для поддержки нюансов модифицированных платформ, и в целом плагины Sponge без проблем работают с модами Forge - например, Nucleus включает почти все функции EssentialsX и другие, и на 100% совместим с модами. Многие плагины Bukkit также имеют эквивалентные порты Sponge, а некоторые (например, LuckPerms) даже позволяют использовать существующие данные Bukkit при переключении на Sponge.
Для более новых версий Minecraft в настоящее время SpongeForge недоступен. Тем не менее, существует широкий выбор серверных модов для Forge и Fabric, которые могут заменить плагины, которые вы можете найти на таких сайтах, как CurseForge и Modrinth. Например, FTB Essentials for Forge включает функции, аналогичные EssentialsX, в то время как FTB Chunks учитывает земельные претензии и защиту.
Вот оригинал — ТЫК
PSA: Не используйте Mohist.
Предупреждение о вредоносном поведении и опасности запуска ненадежного кода.
Примечание: этот PSA не касается того, поможем ли мы вам, если вы запустите Mohist. Ответ на этот вопрос можно найти на официальной странице загрузок EssentialsX и в журналах изменений.
Этот PSA посвящен безопасности и опасному поведению со стороны проекта Mohist.
Мы обратили внимание на то, что с 10 апреля 2021 г. Мохист обманом заставляет пользователей удалять официальные jar-файлы плагинов и устанавливать неофициальные модифицированные сборки. Такое поведение не только сомнительно, но и представляет значительный риск для пользователей, которые не знают, какое программное обеспечение они используют.
В результате мы настоятельно рекомендуем вам не использовать и не поддерживать проект Mohist каким-либо образом в будущем.
Мы не можем гарантировать безопасность или функциональность неофициальных сборок EssentialsX, и вам следует по возможности избегать использования Mohist. Существует бесчисленное множество более безопасных и функциональных альтернатив, и они перечислены внизу этой страницы.
Контекст
Forge, Bukkit и гибридные серверыНа протяжении почти всего времени сосуществования Forge и Bukkit существовало несколько проектов, нацеленных на то, чтобы моды Forge и плагины Bukkit могли работать вместе на одном сервере. Однако проблема в том, что Bukkit никогда не разрабатывался для поддержки модов, и Forge никогда не проектировался для работы с жестким API Bukkit. Это означает, что обычно эти форки требуют значительных изменений в коде сервера CraftBukkit и Forge, и если все сделано неправильно, это приводит к неожиданной работе плагинов и модов.
Mohist и Bukkit API
Однако за последний год вместо того, чтобы пытаться правильно реализовать Bukkit API, проект Mohist решил внести несколько критических изменений в используемые им патчи кода CraftBukkit. Эти изменения в корне нарушают принцип работы Bukkit API:- Внедрение типов блоков/предметов, добавленных Forge, в перечисление Bukkit
Material
дважды: Некоторые моды добавляют блоки / предметы с тем же именем, что и ванильные или другие моды. Мохист внедряет предметы и блоки Forge в класс материалов Bukkit, но каким-то образом сумел зарегистрировать один и тот же материал более одного раза. Перечисления в Java должны содержать только один экземпляр для каждого идентификатора,а это означает, что любой плагин, пытающийся взаимодействовать с элементами или блоками, может сломаться без предупреждения. Это также означает, что любые плагины, которые регистрируют разрешения по умолчанию для материалов, не работают. - Повторное создание объекта Bukkit Player: Интерфейс Bukkit Player позволяет плагинам получать доступ к онлайн-игрокам на сервере и является основной частью Bukkit API. На стандартном сервере на основе CraftBukkit реализация Player сохраняется, пока игрок находится в сети, даже если сущность игрока изменяется (т.е. когда она умирает), и соответственно обновляется в зависимости от того, что происходит в базовом коде Mojang. Однако Mohist изменяет это поведение так, что Bukkit Player заменяется каждый раз, когда игрок умирает, даже если этот класс должен оборачиваться вокруг базовой сущности игрока и обновляться при ее изменении! Это сломало большую часть EssentialsX, поскольку используемый нами Player отключается от реального сервера, когда кто-то умирает.
Эти изменения (и, вероятно, другие тоже), следовательно, нарушают работу нескольких плагинов, включая, помимо прочего, EssentialsX.
Несмотря на предупреждение о том, что эти изменения являются критическими и вызовут проблемы, проект Mohist отказался исправлять свою реализацию Bukkit и вместо этого использовал дополнительные обходные пути, чтобы скрыть проблемы с плагинами.
Опасная "проверка плагинов" Мохиста
10 апреля 2021 года Mohist добавил «средство проверки плагинов», которое сканирует плагины, которые ломаются Mohist, и показывает следующее сообщение:Это сообщение не только вводит в заблуждение (подразумевая, что EssentialsX виноват, когда реальная проблема находится на стороне Мохиста), но и обманом заставляет пользователей удалить программное обеспечение, которое они загрузили из надежного источника, и запустить произвольный код из неизвестного источника, не сообщая об этом пользователю. что не так с плагином, который они скачали, чем «правильная версия» лучше, или откуда вообще взялась «правильная» версия. Многие пользователи, которые видят это приглашение, не поймут, что Mohist загружает и запускает произвольно измененный код вместо официальных файлов jar-модулей, которые они загрузили. Кроме того, этим механизмом можно очень легко злоупотребить для загрузки вредоносных программ, скрывается за названиями других известных проектов и под предлогом «исправлений».
Есть несколько более эффективных способов, которыми команда Mohist может исправить свои проблемы, но правильный способ таков: написать совместимую реализацию Bukkit API. Другие подобные проекты уже достигают этого,
не полагаясь на обман пользователей для загрузки и выполнения неизвестного кода. Решение Мохиста ввести пользователей в заблуждение, заставив их загрузить ненадежный код, показывает, что они не заботятся о безопасности своих пользователей.
Альтернативы Mohist и гибридным серверам
Существует бесчисленное множество альтернативных гибридных серверов, которые пытаются запускать плагины Bukkit поверх Forge., но многие страдают такими же несовместимостями, как и Мохист.Однако, если вы используете сервер 1.12.2, SpongeForge - это зрелое и хорошо спроектированное решение, которое позволяет запускать обширную экосистему плагинов SpongeAPI вместе с модами Forge. SpongeAPI разработан для поддержки нюансов модифицированных платформ, и в целом плагины Sponge без проблем работают с модами Forge - например, Nucleus включает почти все функции EssentialsX и другие, и на 100% совместим с модами. Многие плагины Bukkit также имеют эквивалентные порты Sponge, а некоторые (например, LuckPerms) даже позволяют использовать существующие данные Bukkit при переключении на Sponge.
Для более новых версий Minecraft в настоящее время SpongeForge недоступен. Тем не менее, существует широкий выбор серверных модов для Forge и Fabric, которые могут заменить плагины, которые вы можете найти на таких сайтах, как CurseForge и Modrinth. Например, FTB Essentials for Forge включает функции, аналогичные EssentialsX, в то время как FTB Chunks учитывает земельные претензии и защиту.