Я также могу использовать безопасный режим, чтобы понять, какие изменения внесли другие дистрибутивы Discourse:
Purism содержит лишь несколько скриптов тем (которые, возможно, на самом деле являются частью официального Discourse, поскольку безопасный режим, как я полагаю, блокирует все темы) и один внутренний (то есть встроенный в HTML-файл, а не отдельный JS-файл) фрагмент JavaScript, начинающийся с const DELAY_TARGET=2e3,POLLING_INTERVAL=50,splashS…
Exercism использует, по-видимому, плагин discourse-spoiler-alert, который позже был добавлен в основную ветку, а также тот же самый внутренний JS, что и у Purism.
Форум FSF Member содержит только тот же самый внутренний JS, что и два предыдущих.
Discourse Meta (этот форум), по-видимому, имеет множество различий в JS:
discourse-activity-pub
discourse-customer-flair-plugin (мне не удалось нигде найти лицензию для этого плагина)
discourse-deprecation-collector
discourse-doc-categories
discourse-new-features-feeds (лицензию и для этого плагина найти не удалось)
множество других скриптов, включая некоторые, для которых даже нет ссылки на исходную карту (source map)
Таким образом, кажется, что большинство сторонних дистрибутивов (на основе моей небольшой выборки из трёх) остаются довольно близкими к основной ветке Discourse. Однако теперь это выглядит так, будто данный дистрибутив содержит плагины, которые не входят в состав большинства других дистрибутивов. Не подскажете, где я могу найти лицензионный исходный код для всех этих плагинов? Они должны быть в основном репозитории? Мне не удалось найти их, выполнив поиск по именам некоторых из них в основном репозитории, но возможно, я что-то упустил.
Я попытался найти на всём форуме упоминания «discourse-new-features-feeds» (например), но ничего не обнаружил. Для некоторых расширений мне удалось найти их в каталоге плагинов, на GitHub или здесь, на форуме, но для «discourse-new-features-feeds» и «discourse-customer-flair-plugin» я ничего не нашёл. Я не проверял каждый отдельный скрипт плагина, поэтому возможно, есть ещё такие, которые я не смог найти.
Я предполагаю, что могут быть причины, по которым, например, собственные кастомизации Meta не являются публичными. Или вы недостаточно глубоко изучили репозиторий Discourse
Возможно, они являются клиентом уровня Enterprise и заказали у Discourse индивидуальную настройку своего форума.
Кроме того, если вы хотите использовать безопасный режим для просмотра клиентских настроек, не отключит ли это их? Как вообще можно включить их на таких сайтах?
Из чистого любопытства я задаюсь вопросом: в чём именно заключается вся эта логика? Вы просто не сможете просматривать интернет с такими опасениями, верно?
Вы говорите о «лицензии». Но ваша собственная лицензия на использование конкретного форума в качестве простого пользователя будет отличаться от лицензии на запуск программного обеспечения форума (то есть если кто-то захочет создать на его основе другой форум). Почему пользователю должно быть важно последнее? Из-за каких-то принципов, которым он хочет следовать? Любая кастомизация, не распространяемая дальше, вероятно, будет считаться «проприетарной». Это порождает вопрос: где начинается и где заканчивается эта грань.
Вы можете опасаться JavaScript и того, что он может разрешить запускать в вашем браузере (риски и возможности этого часто обсуждаются. Предполагается, что они ограничены). Не уверен, может ли Discourse работать без него, хотя. Или хотя бы работать корректно. Вы всегда можете попробовать. Например, существует популярное расширение браузера «NoScript» для этого.
Меня всё ещё интересует обоснование: речь идёт о потенциально вредоносном коде? В таком случае мне не совсем понятно, почему наличие лицензии, ГОВОРЯЩЕЙ о том, что форум работает на неизменённой версии, должно вызывать у вас большее чувство безопасности. Или в чём тут суть?
В целом, я стараюсь избегать запуска несвободного программного обеспечения. Главная причина в том, что я считаю, будто должен иметь контроль над программным обеспечением, работающим на моём компьютере. Дополнительная причина — мне не нравится идея о том, что исправление ошибок может быть незаконным. Также я считаю, что хорошо бы получать программное обеспечение из небольшого числа доверенных репозиториев, а не скачивать его со сотен различных независимых веб-сайтов без какого-либо внешнего надзора или подотчётности. Поэтому для меня важно, чтобы я мог свободно упаковывать используемое мной программное обеспечение для репозитория, которому доверяю (хотя в текущих технологиях это крайне непрактично для JavaScript, обслуживаемого сайтом).
Я не считаю, что должен иметь контроль над программным обеспечением, работающим на компьютерах других людей, поскольку полагаю, что этот контроль должен принадлежать оператору сервера, и мне кажется бессмысленным, чтобы несколько пользователей полностью контролировали это программное обеспечение.
Нет, относительно легко избежать запуска несвободного программного обеспечения в интернете, если вы не используете программы, которые автоматически скачивают и выполняют произвольный код от ненадёжных сторон, или если вы модифицируете такие программы, чтобы они этого не делали (например, установив LibreJS в ваш веб-браузер).
Насколько я понимаю, для использования большинства функций форума требуется запуск программного обеспечения форума, хотя чтение постов работает без него. Если я хочу зарегистрировать аккаунт и публиковать темы, похоже, мне необходимо запускать программное обеспечение форума. Большинство людей этого не осознают, потому что большинство браузеров скачивают и выполняют любое программное обеспечение, отправляемое веб-сайтом, не уведомляя пользователя.
Часть программного обеспечения форума выполняется на сервере, и в этом случае экземпляры Discourse не обязательно распространяют это программное обеспечение вообще. Это означает, что я не обязательно получу какое-либо несвободное программное обеспечение, добавленное на стороне сервера, поэтому я не пытаюсь избегать экземпляров, которые это делают.
отступление о определениях
На мой взгляд, программное обеспечение, которое никогда не распространяется, является «проприетарным», потому что у него есть единственный «владелец» (автор), но оно также является «свободным», потому что все его пользователи (всего один — автор) свободны делать с ним всё, что захотят. Ну, я полагаю, можно сказать, что люди, взаимодействующие с сервером, являются «пользователями» программного обеспечения на этом сервере, так что, возможно, мне следует использовать другое слово вместо «пользователи», но я не уверен, какое слово использовать. Возможно, технически я являюсь «пользователем» программного обеспечения, работающего в телефонной сети или на чужом телефоне, если я кому-то звоню.
Да, у меня установлен NoScript, и когда я блокирую клиентское программное обеспечение Discourse, конечно, Discourse не может «работать» без него, потому что я запретил браузеру выполнять скрипты. Серверное программное обеспечение, которое не работает на моём компьютере, не блокируется NoScript. В таком состоянии темы и комментарии, обслуживаемые серверным программным обеспечением Discourse, можно просматривать, но для регистрации и публикации, похоже, необходимо использовать клиентское программное обеспечение на JavaScript.
Что касается вредоносного ПО, то если программа свободного программного обеспечения является вредоносной, то кто-то может модифицировать её, чтобы она перестала быть вредоносной, и затем распространить эту модифицированную версию для использования вместо оригинала. Для JavaScript, обслуживаемого сайтом, это в настоящее время несколько непрактично. В идеале должна существовать лицензия, прямо указывающая, что программное обеспечение является свободным, чтобы даже в случае его модификации использование его в качестве свободного программного обеспечения оставалось законным. В текущей ситуации мне приходится доверять используемым мной дистрибутивам в том, что они не «лгут» о том, какую версию программного обеспечения они используют (например, модифицируя серверное программное обеспечение Discourse, чтобы заявить об использовании одного коммита, когда на самом деле используется другой).
Возможно, я сделал этот ответ немного слишком длинным, но его суть в том, что я ценю свободу программного обеспечения и поэтому хочу избегать запуска несвободного программного обеспечения на своём компьютере.
В данном случае «они» — это Discourse Meta. Разве это не часть Discourse (компании)?
Да, я имел в виду следующее: с помощью безопасного режима я могу отключить скрипты модификаций, а затем сравнить, какой программный код отправляется в браузер в обоих случаях. Разница заключается именно в модификациях и темах.
Безопасный режим можно включить, перейдя по адресу /safe-mode (например, http://meta.discourse.com/safe-mode) и выбрав соответствующие опции на этой странице. Эта страница не требует JavaScript, поэтому безопасный режим можно активировать, используя расширения вроде NoScript, LibreJS и/или Haketilo для блокировки JS, либо установив параметр javascript.enabled в значение false в настройках браузера для браузеров на базе Firefox.
На этом этапе вы можете сравнить теги скриптов на обеих страницах, чтобы увидеть, что было удалено в безопасном режиме. Я использовал скрипт вроде этого:
script-diff.js
// SPDX-FileCopyrightText: 2024 Jacob K
//
// SPDX-License-Identifier: CC0-1.0
// на странице с большим количеством скриптов
const scriptSrcArr = [];
for (script of document.scripts) {
if (script.src) {
scriptSrcArr.push(script.src);
} else {
scriptSrcArr.push(script.textContent);
}
}
console.log(scriptSrcArr)
// на странице с меньшим количеством скриптов (вам нужно будет нажать правой кнопкой мыши на массив и выбрать "Копировать объект" на первой странице)
scriptSrcArr = ВСТАВЬТЕ_ОБЪЕКТ_С_ДРУГОЙ_СТРАНИЦЫ_СЮДА
for (script of document.scripts) {
if (!scriptSrcArr.includes(script.src)) {
console.info(script)
}
}
// Я предполагаю, что скрипты на первой странице являются надмножеством скриптов на второй странице
@Jagster (пытаюсь ответить через редактирование, как предложил Discourse — классная функция подсказок!)
Это заставляет меня подумать, что Discourse, распространяемый через meta.discourse.org, является несвободным программным обеспечением. Это означало бы, что утверждения «Весь исходный код Discourse открыт и свободно доступен общественности» и «Discourse — это на 100% свободное, открытое программное обеспечение для форумов» (оба с сайта www.discourse.org) вводят в заблуждение, даже если технически это верно, поскольку программное обеспечение не то же самое, что его плагины. Чувствуется, что меня обманом заставили запустить несвободное программное обеспечение
Полагаю, это утверждение действительно предназначено для тех, кто планирует размещать собственные экземпляры Discourse, а не присоединяться к уже существующим.
Надеюсь, я ошибаюсь, и на самом деле я просто недостаточно внимательно посмотрел в репозиторий.
У вас, должно быть, такое чувство возникает очень часто. Без смайликов, потому что это просто констатация факта о том, как работают интернет и приложения в нём.
Вы только что заявили, что кастомизации — это плохо, и если основа с открытым исходным кодом, то все дополнения тоже должны быть свободными. Ну, я думаю, WordPress использовал такой подход, но точно не в случае с wordpress.com. Однако, если вы посетите мой сайт на WordPress, там много кастомных решений. Некоторые проприетарные, некоторые с открытым исходным кодом, некоторые кастомные, а некоторые созданы мной. И в этой реальности произойдут две вещи:
весь код кастомных решений будет публичным
я сообщу вам или любому посетителю, есть ли у меня действительная лицензия или нет
Но мне трудно понять, почему Discourse, WordPress, Moodle и подобные системы не считаются свободными, если некоторые дополнения к ним несвободные. Я не понимаю логику, стоящую за таким мнением.
Нельзя предсказать, как хостинг-провайдеры могут затем адаптировать это.
Более того, по усмотрению хоста они могут добавить:
рекламу
подписки
И хотя «программное обеспечение» может оставаться «бесплатным для использования», некоторые функции могут быть заблокированы, а реклама отключена только для платных подписчиков.
Не у всех есть неограниченные средства для бесплатного запуска экземпляра Discourse. Многим сайтам необходимо зарабатывать, чтобы оплачивать счета.
Запуск Discourse никогда не бывает «бесплатным» в масштабе. Хост должен оплачивать основные расходы, такие как доменное имя, VPS и почтовые услуги.
(… и не будем даже говорить о затратах на разработку Discourse изначально!)
Понятно, я думаю, теперь я понимаю вашу точку зрения.
Ничего подобного! Код всегда будет свободным.
Администраторы собственного сайта Discourse имеют свободу настраивать свой форум. Плагины, темы, TC не всегда должны быть с открытым исходным кодом. Discourse это устраивает, так как существуют способы использования приватных репозиториев вместо публичных для подключения таких настроек.
Так что ни один из плагинов, за исключением очень, очень, очень редких случаев (возможно, даже почти никогда!), не будет платным [1]. Так что ничего не является «несвободным»: всё свободно.
Моя мысль в том, что программное обеспечение с открытым исходным кодом будет бесплатным. Плагины бесплатны — это ваш выбор их использовать. То же самое касается тем, TC и т. д. Однако то, что не имеет открытого исходного кода, может быть платным, но администраторы решили сделать его бесплатным для использования. Никто не помешает вам, если вы захотите скопировать настройку с закрытым исходным кодом настолько хорошо, насколько сможете, и использовать её самостоятельно.
Discourse бесплатен, публичные настройки [2] бесплатны, и приватные настройки также бесплатны для использования (по крайней мере, во многих местах, но
. Оплата владельцу за исходный код — это уже другое дело.
По сути, если вы не создали плагин/тему/TC сами и не поделились ими, вы всегда можете установить настройки бесплатно. Никто вас не остановит.
Извините, если это звучит грубо или сухо, или если я ходил по кругу и повторял одно и то же.
За исключением платных заказов, что является вашим личным выбором спонсировать это ↩︎
т. е. те, что перечислены здесь в Meta или на GitHub открыто ↩︎
Это не всегда верно. Повторюсь: речь о свободе, а не о цене. Существуют проекты с открытым исходным кодом, чьи лицензии слишком ограничительны, чтобы считаться свободным ПО по определению FSF. Примеры — MongoDB и ElasticSearch.
Использование свободного ПО не означает, что у вас есть над ним контроль.
Похоже, вы путаете понятия «надёжный» и «свободный». Когда администратор сервера собирает Discourse, процесс сборки загружает множество пакетов из NPM. Можно ли всегда им доверять? (История показала, что это не так — пример и ещё один).
Вы «полагаете» Администратор сервера может внести изменения, не меняя хэш коммита. Кроме того, плагин может внедрять JavaScript-код.
Мне не хочется вас разочаровывать, но это неверно.
Дело не в том, свободное это ПО или нет, с открытым или закрытым исходным кодом, а в доверии.
Если вы посещаете инстанс Discourse, вам придётся доверять:
администратору(-ам) сервера
всем, у кого есть доступ к коммитам в организации Discourse на GitHub
всем, у кого есть доступ к коммитам в репозиториях плагинов
всем сотрудникам GitHub
всей цепочке программного обеспечения NPM
всем, у кого есть доступ к коммитам в любом используемом репозитории NPM
всем, кто контролирует ваше браузерное ПО
компании, предоставившей SSL-сертификат и цепочку доверия
Разве это не несколько тысяч человек?
Плагины и компоненты тем можно найти в отдельных репозиториях.
Не все плагины имеют открытый исходный код (например, discourse-customer-flair-plugin, насколько мне известно, нет). Вот и всё. Вам придётся перестать использовать Meta Шучу, конечно. Моя мысль в том, что доверия может быть достаточно, даже если не всё является ПО с открытым исходным кодом или свободным ПО.
Просто вопрос к @JacobK1: вы читали лицензию Discourse?
Цитирую некоторые пункты, которые могут быть актуальны:
GNU General Public License предназначена для гарантии вашей свободы распространять и изменять свободное программное обеспечение — чтобы убедиться, что программное обеспечение свободно для всех его пользователей.
Вы можете изменять вашу копию или копии Программы или любую её часть, формируя работу на основе Программы, и копировать и распространять такие изменения или работу в соответствии с условиями раздела 1 выше
Надеюсь, на это уже было дано ответ выше и в цитате, приведённой перед этим.
Если я правильно понимаю, всё это в основном связано с JavaScript. Речь идёт о том, что выполняется с помощью JavaScript внутри вашего браузера и что предоставляется каждым экземпляром Discourse. Это также во многом касается «доверия» и возможности знать, какой код выполняется (иметь возможность его просмотреть). Так?
Это немного выше моей компетенции, но можно ли иметь «контроль» над этим? Если вы не вносите коммит, который меняет что-то для всех, я не думаю, что вы сможете действительно «исправить» что-либо самостоятельно, так как то, что вы называете «программным обеспечением», работающим на вашем компьютере, предоставляется вашему браузеру сервером каждый раз.
Даже если бы у каждого форума был опубликован собственный исходный код с возможными модификациями, можно ли быть уверенным, что именно этот код выполняется в любой момент времени? Это не то же самое, что скачать один раз, проверить и скомпилировать у себя на машине.
То, что вам на самом деле нужно, это либо:
Отсутствие JavaScript (с Discourse в этом плане не повезёт, так как он сильно на него полагается), или
Независимый клиент с открытым исходным кодом, фактически установленный на вашем компьютере. Последний также не должен использовать JavaScript, если это вообще возможно в рамках Discourse (что я не знаю точно). Тогда вы сможете модифицировать свой клиент и получить тот контроль, который вам нужен.
Правильно ли я всё понял?
(PS: Это тоже выше моей компетенции, но, если я правильно помню, не весь код Discourse имеет открытый исходный код. Однако вас интересует только то, что выполняется на вашей стороне, а не всё, что происходит на сервере).
Поскольку я получаю подавляющее большинство своего программного обеспечения с помощью apt install, а не через веб-браузер, и доверяю своему дистрибутиву (Trisquel) распространять только свободное ПО, это обычно не вызывает беспокойства.
Только для ясности: я не утверждаю, что кастомизации обязательно плохи, просто они могут быть таковыми, если они несвободны. Поэтому один из способов убедиться, что вы не запускаете несвободное ПО, — отключить кастомизации.
Я считаю, что всё программное обеспечение должно быть свободным/libre.
Для ясности: я не пытаюсь утверждать, что Discourse несвободен. Речь идёт только об этой конкретной дистрибуции Discourse (Discourse Meta), которая, как кажется, включает несвободное ПО.
В своём предыдущем посте я должен был упомянуть, что ещё одной причиной, по которой я думал, что эта дистрибуция будет свободной, является то, что страница «О нас» для Discourse гласит: «Существует только одна версия Discourse — великолепная версия с открытым исходным кодом». Это, опять же, технически верно, поскольку плагины не являются частью Discourse, но мне это показалось вводящим в заблуждение.
Discourse может не иметь контроля над сторонними дистрибутивами, но я ожидал, что экземпляры Discourse, размещённые самой компанией Discourse, будут свободным ПО, если они говорят то, что говорят на странице «О нас». Я также мог ожидать лицензию и/или фреймворк, которые эффективно требовали бы, чтобы производные работы были свободным ПО, что в некоторой степени есть, поскольку Discourse распространяется по лицензии GPL, но, похоже, это не распространяется на плагины.
Я считаю, что взимание денег за программное обеспечение или услуги — это нормально; обычно «свободное» в термине «свободное ПО» означает «libre», то есть вы свободны делать с ним всё, что хотите (копировать, изменять и т. д.), после того как получите его. Это не обязательно означает, что оно «бесплатное» в смысле «gratis», то есть с нулевой стоимостью.
Строго говоря, да, никто не мешает мне, но это было бы незаконно, что кажется плохим. Для личного использования это может сработать, но в целом публичные репозитории программного обеспечения и магазины приложений не хотят включать код, полученный незаконно, и некоторые люди, которых я мог бы пожелать использовать это ПО, могут чувствовать себя некомфортно, запуская незаконно скопированный код. Не уверен, что у меня правильный подход; возможно, мне стоит просто полностью игнорировать авторское право, но это кажется не лучшим вариантом, когда возможно избегать незаконного и несвободного ПО.
Без проблем! Я не думаю, что вы ведёте себя грубо, и мне пока не кажется, что мы ходим по кругу.
Что вы имеете в виду под этим? Если ПО свободное, это значит, что я могу его изменять; следовательно, я действительно имею контроль над тем, что оно делает.
Я не считаю, что «свободный» то же самое, что «надёжный»; возможно, мне следовало сказать «произвольный» вместо «ненадёжный», но моя мысль заключалась в том, что большинство браузеров выполняют любой код, который предоставляет им веб-страница, и поскольку я часто посещаю сайты, которые никогда раньше не посещал, многие посещаемые мной сайты являются «ненадёжными». Для этих сайтов у меня нет причин полагать, что они не отправят несвободное ПО.
Что касается NPM, я считаю его более надёжным, чем произвольный веб-сайт, но, возможно, не таким надёжным, как мои репозитории apt или guix. Хотя доверие не одномерно; хотя я бы не доверял новому пакету в NPM только потому, что он там есть, я бы доверял тому, что при загрузке JQuery из NPM это действительно JQuery. NPM может допускать ошибки, позволяющие злоумышленнику подменить JQuery, но NPM может предпринять меры для предотвращения вредоносного ПО, которые были бы нереалистичны для JavaScript, обслуживаемого сайтами (например, предпубликационная автоматическая/ручная проверка, постпубликационная краудсорсинговая проверка, автоматическая проверка соответствия минифицированных/обфусцированных скриптов исходному коду, правила, запрещающие загрузку и выполнение произвольного кода во время выполнения). Важно то, что при обнаружении вредоносного ПО в NPM есть третья сторона (NPM, а не разработчик ПО), к которой можно обратиться для его удаления. Это не относится к JavaScript, обслуживаемому сайтами — удалить его может только оператор сайта.
Значит ли это, что указанный хэш коммита будет неверным, если администратор сервера внесёт изменения и не изменит также указанный хэш коммита? Я думал, что обновление программного обеспечения автоматически меняет хэш коммита, и я (ошибочно?) предположил, что указанный хэш коммита будет обновляться автоматически.
Будет ли JavaScript, внедрённый плагином, отключён с помощью safe_mode=no_themes,no_unofficial_plugins?
Таким образом, единственным способом избежать несвободного ПО при использовании Discourse будет упаковка клиента Discourse в виде расширения браузера или пакета Haketilo или чего-то подобного?
Не совсем понимаю, что вы имеете в виду, учитывая, что мой исходный вопрос касался свободы программного обеспечения, а не доверия.
Я не согласен с тем, что всем перечисленным вами нужно доверять.
Администраторам сервера не нужно доверять, если вы не запускаете ПО, предоставляемое ими, например, если вы получаете клиент Discourse из GitHub и упаковываете его так, чтобы его можно было использовать с этим сервером.
Во многих случаях люди, сотрудничающие в разработке ПО, могут читать некоторые коммиты друг друга, поэтому мне не нужно доверять каждому автору индивидуально.
Так что это означает, что клиент Discourse Meta является проприетарным ПО, верно? Хотя можно использовать безопасный режим для отключения JavaScript плагина.
Возможно, но это не очень помогает, если я хочу избежать несвободного ПО.
@NateDhaliwal
Я прочитал лицензию в репозитории Discourse на Git, но (из-за CLA) она не обязательно распространяется на производные работы Discourse вне этого репозитория. Я хотел бы видеть уведомление на каждой дистрибуции Discourse, указывающее, какое из распространяемого ПО является libre. Это даже (на мой взгляд) соответствовало бы духу GPL: «вы должны показать им эти условия, чтобы они знали свои права».
Да, это возможно запустить JavaScript через расширение браузера или прокси, такие как Haketilo или GreaseMonkey, хотя это может быть очень неудобно для некоторых программ, например, если они обновляются очень часто, как это было бы в случае с ПО, где данные встроены в JavaScript-код. Haketilo также не поддерживает некоторые виды скриптов, например, скрипты с типом “module”.
Да, я думаю, что ваше понимание в целом верно. Хотя упаковка JavaScript в виде расширения браузера или для Haketilo или GreaseMonkey фактически приведёт к установке независимого клиента, даже если он будет использовать JavaScript.
Я предполагаю, что вы имеете в виду «Всё» в смысле «всё, что является частью Discourse», то есть не включая плагины, такие как discourse-customer-flair-plugin?
Всё, что входит в основную продукцию, которую мы хостим (включая Meta), за исключением указанного выше, является бесплатным и с открытым исходным кодом.
Некоторые плагины зависят от проприетарных платформ для работы, но это никак не связано с тем, является ли Discourse проектом с открытым исходным кодом или нет.
Все экземпляры Discourse, размещённые CDCK или нами (я являюсь соучредителем компании, которая размещает Discourse), работают с одним или несколькими проприетарными плагинами для обеспечения функциональности, специфичной для среды хостинга.
Я думаю, здесь есть значительная путаница между дистрибутивом в старом добром смысле (вот репозиторий GitHub, делайте с ним что угодно) и дистрибутивом в более современном смысле (вот веб-сайт, который отправляет JavaScript в ваш браузер). Кроме того, существует путаница между Discourse https://github.com/discourse/discourse и Discourse со всеми его плагинами первого и третьего уровня, а также компонентами тем, добавленными администраторами сайта.
Это хэш именно коммита, поэтому, если изменения вносятся после извлечения из репозитория и до коммита, вы уже попадаете в такую ситуацию. Это не обязательно должно быть злонамеренным действием; это также происходит при применении исправлений безопасности (что обычно делается перед коммитом в публичную ветку). В целом исправления безопасности не относятся к клиентской стороне, но они могут включать обновлённый клиентский код.
Да — по крайней мере, в теории. Я не уверен, насколько сложно это обойти (намеренно или случайно).
Это был бы один из способов, но я не уверен, что это единственный. Если вы сделаете это, вам нужно будет обновлять его почти ежедневно, чтобы избежать поломок.
Хотя вся эта тема представляет собой интересный юридический дискурс, всё это кажется немного оторванным от реальности.
Существует ли отдельный репозиторий с лицензией для плагинов, который я ранее не нашёл, например discourse-customer-flair-plugin? JavaScript, обслуживаемый браузеру, содержит ссылку на карту исходного кода, но, насколько я могу судить, не содержит лицензии.
Мое понимание «кода хостинга/инфраструктуры» не включает клиентский JavaScript; это правильно?
Я согласен. Мне кажется, я запутался в том, к чему именно применяется слово «Discourse».
Ах, понятно, значит, действительно нет хорошего способа это определить.
Хорошая мысль, кто-то мог попытаться скрыть подобную уязвимость. Но, кажется, проще смягчить эту проблему, проводя аудит кода сторонних разработчиков, чем доверять каждому человеку, когда-либо изменявшему код на стороне поставщика, хотя, вероятно, ни один из этих подходов нецелесообразен для полного осуществления.
Да, хотя возможно, что большинство обновлений можно будет обрабатывать автоматически.
Просто к сведению, @JacobK1: поскольку Discourse работает отлично, нет необходимости отмечать кого-то при цитировании этого человека. Само цитирование уже создаст уведомление (хотя это также было сделано для создания подразделов, признаюсь )