¿Cómo puedo saber si una distribución en particular del cliente Discourse es software libre?

También puedo usar el modo seguro para tener una idea de los cambios que han realizado otras distribuciones de Discourse:

  • Purism solo tiene un par de scripts de temas (que podrían ser parte del Discourse oficial, ya que el modo seguro bloquea todos los temas, creo) y una pieza interna (es decir, parte del archivo HTML, no un archivo JS externo) de JavaScript, que comienza con const DELAY_TARGET=2e3,POLLING_INTERVAL=50,splashS
  • Exercism tiene lo que parece ser el plugin discourse-spoiler-alert que se agregó más tarde al núcleo, así como el mismo JS interno que Purism.
  • El foro de miembros de FSF tiene solo ese mismo JS interno que los otros dos.
  • Discourse Meta (este foro) parece tener muchas diferencias en JS.
    • discourse-activity-pub
    • discourse-customer-flair-plugin (no pude encontrar una licencia para este en ningún lado)
    • discourse-deprecation-collector
    • discourse-doc-categories
    • discourse-new-features-feeds (tampoco se encontró licencia para este)
    • muchos más scripts, incluidos algunos que ni siquiera tienen un enlace a un mapa de origen.

Así que parece que la mayoría de las distribuciones de terceros (basado en mi pequeña muestra de 3) se mantienen bastante cerca del Discourse principal, pero esto hace que parezca que esta distribución contiene plugins que no formarían parte de la mayoría de las distribuciones. ¿Sabes dónde encontraría el código fuente con licencia para todos esos? ¿Estarían en el repositorio principal? No pude encontrarlos buscando algunos de esos nombres en el repositorio principal, pero es posible que me lo haya perdido.

Desde aquí, obvio, porque la mayoría no son de terceros, sino de la propia empresa :smirking_face:

Deberías echar un vistazo a las categorías Plugin y Theme component. Pero también puedes encontrar interesantes, por ejemplo, Dev y Documentation.

Intenté buscar en todo el foro “discourse-new-features-feeds” (por ejemplo) y no encontré nada. Para algunas extensiones, pude encontrarlas en el directorio de plugins, en GitHub o aquí en los foros, pero para discourse-new-features-feeds y discourse-customer-flair-plugin, no pude encontrar nada. No revisé cada script de plugin, así que puede haber más que no podría encontrar.

Supongo que puede haber una razón por la que, por ejemplo, las personalizaciones de Meta no son públicas. O no profundizaste lo suficiente en el repositorio de Discourse :man_shrugging:

Es posible que sean un cliente de Enterprise y hayan hecho que Discourse personalice especialmente su foro para ellos.
Además, si quieres usar el modo seguro para ver personalizaciones del lado del cliente, ¿no lo deshabilitaría en lugar de eso? ¿Cómo lo habilitarías en estos sitios en primer lugar?

Por curiosidad, me pregunto cuál es exactamente toda la lógica aquí. Simplemente no puedes navegar por internet con las preocupaciones que planteas, ¿correcto?

Hablas de “licencia”. Pero tu propia licencia para usar un foro específico como un simple usuario sería diferente de la licencia para ejecutar realmente el software del foro (= si alguien quiere configurar otro foro con él). ¿Por qué le importaría a un usuario lo último? ¿Debido a algunos principios a los que quiere adherirse? Supongo que cualquier personalización no redistribuida sería “propietaria”. Lo que plantea la pregunta de dónde empieza y dónde termina.

Puedes desconfiar de javascript y de lo que podría permitir ejecutar en tu navegador (los riesgos y las posibilidades de eso a menudo se debaten. Se supone que está limitado). No estoy seguro de si Discourse puede ejecutarse sin él, o ejecutarse correctamente, al menos. Siempre puedes intentarlo. Existe la popular extensión de navegador “NoScript” para eso, por ejemplo.

Todavía me pregunto sobre el razonamiento: ¿Se trata de código malicioso potencial? En este caso, no tendría mucho sentido para mí que te sintieras mejor con una licencia que DICE que un foro ejecuta una versión no modificada. ¿O de qué se trata?

En general, quiero evitar ejecutar software no libre. La razón principal es que creo que debo tener control sobre el software que se ejecuta en mi computadora, y una razón adicional es que no me gusta la idea de errores que pueden ser ilegales de corregir. También creo que sería bueno si obtuviera mi software de un número reducido de repositorios confiables, en lugar de descargar software de cientos de sitios web independientes diferentes sin supervisión ni rendición de cuentas de terceros, por lo que es importante para mí poder empaquetar el software que uso para un repositorio en el que confío (aunque esto es bastante poco práctico para JavaScript servido por el sitio con la tecnología actual).

No creo que deba tener control sobre el software que se ejecuta en las computadoras de otros, porque creo que el operador del servidor debería tener ese control, y no me parece sensato que varios usuarios tengan control total sobre el software.

No, es relativamente fácil evitar ejecutar software no libre en Internet si no usas programas que descargan y ejecutan automáticamente código arbitrario de terceros no confiables, o si modificas dichos programas para que no lo hagan (por ejemplo, instalando LibreJS en tu navegador web).

Por lo que puedo decir, ejecutar el software del foro es necesario para usar la mayoría de las funciones del foro, aunque leer las publicaciones funciona sin él. Si quiero registrar una cuenta y publicar temas, parece que tengo que ejecutar el software del foro. La mayoría de la gente no se da cuenta porque la mayoría de los navegadores descargarán y ejecutarán cualquier software que el sitio web envíe, sin notificar al usuario.

Parte del software del foro se ejecuta en el servidor, y entonces las instancias de Discourse no necesariamente distribuirán ese software en absoluto, lo que significa que ni siquiera obtendría necesariamente ningún software no libre que la instancia haya agregado al lado del servidor, por lo que no intento evitar las instancias que hacen esto.

aparte sobre definiciones

En mi opinión, el software que nunca se distribuye es “propietario” porque tiene un único “propietario” (el autor), pero también es “libre” porque todos sus usuarios (solo uno, el autor) son libres de hacer lo que quieran con él. Bueno, supongo que se podría decir que las personas que interactúan con un servidor son “usuarios” del software en ese servidor, así que tal vez debería usar una palabra diferente a “usuarios”, pero no estoy seguro de qué palabra usar en su lugar. Tal vez técnicamente soy un “usuario” del software que se ejecuta en la red telefónica o en el teléfono de otra persona si llamo a alguien.

Sí, tengo NoScript instalado, y cuando bloqueo el software de Discourse del lado del cliente, por supuesto que Discourse no puede “ejecutarse” sin él, porque he evitado que el navegador ejecute los scripts. El software del lado del servidor, que no se ejecuta en mi computadora, no es bloqueado por NoScript. En este estado, los temas y comentarios servidos por el software del servidor Discourse son visibles, pero para registrarse y publicar parece que necesitas usar el software JavaScript del lado del cliente.

Con respecto al malware, si un programa de software libre es malware, entonces alguien puede modificarlo para que no sea malware y luego distribuir esa versión modificada para usarla en su lugar. Para JavaScript servido por el sitio, esto es actualmente algo poco práctico. Idealmente, habría una licencia que estableciera directamente que el software es software libre, de modo que incluso si el software se modificara, seguiría siendo legal usarlo como software libre. Tal como están las cosas, tengo que confiar en que las distribuciones que uso no “mienten” sobre qué versión del software están utilizando (por ejemplo, modificando el software del servidor Discourse para afirmar que se está utilizando un commit cuando en realidad es otro).

Probablemente hice esta respuesta un poco larga, pero el núcleo es que valoro la libertad del software y, por lo tanto, quiero evitar ejecutar software no libre en mi computadora.

En este caso, “ellos” es Discourse Meta. ¿No es eso parte de Discourse (la empresa)?

Sí, lo que quise decir fue: con el modo seguro puedo deshabilitar los scripts de las modificaciones y luego comparar qué software se envía al navegador en ambos casos. La diferencia son las modificaciones y los temas.

El modo seguro se puede habilitar navegando a /safe-mode (por ejemplo, http://meta.discourse.com/safe-mode) y seleccionando las opciones allí. Esa página no requiere JavaScript, por lo que el modo seguro se puede habilitar mientras se usan extensiones como NoScript, LibreJS y/o Haketilo para bloquear el JS o estableciendo javascript.enabled en false en la configuración del navegador para navegadores basados en Firefox.

En este punto, puedes comparar las etiquetas de script en ambas páginas para ver qué se eliminó con el modo seguro. Usé un script como este:

script-diff.js
// SPDX-FileCopyrightText: 2024 Jacob K
//
// SPDX-License-Identifier: CC0-1.0

// en la página con más scripts
const scriptSrcArr = [];
for (script of document.scripts) {
  if (script.src) {
		scriptSrcArr.push(script.src);
  } else {
    scriptSrcArr.push(script.textContent);
  }
}

console.log(scriptSrcArr)

// en la página con menos scripts (Necesitarás hacer clic derecho en la matriz y hacer clic en "Copiar Objeto" en la primera página)
scriptSrcArr = PEGAR_OBJETO_DE_LA_OTRA_PÁGINA_AQUÍ
for (script of document.scripts) {
  if (!scriptSrcArr.includes(script.src)) {
      console.info(script)
  }
}
// Asumo que los scripts en la primera página son un superconjunto de los scripts en la segunda página

@Jagster (intentando responder mediante edición, como sugirió Discourse (¡genial función de sugerencias!))

Eso me hace pensar que Discourse, tal como lo distribuye meta.discourse.org, es software no libre, lo que significaría que las afirmaciones de “Todo el código de Discourse es abierto y está libremente disponible para el público” y “Discourse es 100% gratuito, código abierto software de foro.” (ambos de www.discourse.org) parecen engañosas, incluso si técnicamente es cierto porque el software no es lo mismo que sus complementos. Me siento un poco como si me hubieran engañado para ejecutar software no libre :slightly_frowning_face:

Supongo que esa afirmación está realmente destinada a personas que tienen la intención de alojar instancias de Discourse, no a unirse a las existentes.

Espero estar equivocado y que realmente sea el caso de que simplemente no miré lo suficientemente de cerca el repositorio.

Debes sentir eso muy a menudo. Sin emoticonos, porque solo fue una declaración debido a cómo funciona internet y las aplicaciones en él.

Acabas de decir que las personalizaciones son malas, y si la base es de código abierto, entonces todos los complementos también deben ser gratuitos. Bueno, creo que WordPress usó eso, pero ciertamente no con wordpress.com, pero si visitas mi sitio de WordPress, hay mucho trabajo personalizado. Algunos son propietarios, otros son abiertos, otros son personalizados y otros son míos. Y no en esta realidad sucederán dos cosas:

  • todo el código del trabajo personalizado sería público
  • Te diría a ti o a cualquier visitante si tengo o no una licencia válida

Pero me cuesta entender por qué Discourse, WordPress, Moodle, etc. no serían gratuitos si algunos complementos no son gratuitos. No entiendo la lógica detrás de ese pensamiento.

Ese es definitivamente el punto :+1:
No se puede predecir en qué podrían adaptarlo los anfitriones.

De hecho, además y, por ejemplo, a discreción del anfitrión, pueden añadir:

  • publicidad
  • suscripciones

Y si bien el “software” puede seguir siendo “de uso gratuito”, algunas funciones podrían estar restringidas y la publicidad solo se desactivaría para los suscriptores de pago.

No todo el mundo tiene fondos ilimitados para ejecutar una instancia de Discourse de forma gratuita. Muchos sitios necesitan generar ingresos para pagar sus facturas.

Ejecutar un Discourse nunca es “gratuito” a escala. El anfitrión tiene que pagar los costos del nombre de dominio, VPS y servicios de correo electrónico, por nombrar los principales.

(… ¡y no entremos en los costos de desarrollo de Discourse en primer lugar!)

De acuerdo, creo que entiendo tu punto de vista.

¡Para nada! El código siempre será libre.


Los administradores de su propio sitio de Discourse tienen la libertad de personalizar su propio foro. Los plugins, temas y TCs no siempre tienen que ser de código abierto. Discourse está de acuerdo con eso, ya que hay formas de usar repositorios privados en lugar de públicos para conectar estas personalizaciones.
Lo mismo ocurre con cualquiera de los plugins, excepto en ocasiones muy, muy, muy raras (¡quizás incluso casi nunca!) estas personalizaciones serán de pago [1]. Así que nada es “no libre”: todo es libre.
Mi punto es que el software de código abierto será libre. Los plugins son gratuitos, es tu elección usarlos. Lo mismo ocurre con los temas, TCs, etc. Lo que no es de código abierto, sin embargo, puede ser de pago, pero los administradores eligieron hacerlo gratuito. No hay nadie que te impida, si quieres, hacer una copia de una personalización de código cerrado lo mejor que puedas y usarla tú mismo.
Discourse es gratuito, sus personalizaciones públicas [2] son gratuitas, sus personalizaciones privadas también son gratuitas de usar (al menos en muchos lugares, pero

. Pagarle al propietario por el código fuente es otra cosa, sin embargo.

Esencialmente, a menos que crees un plugin/tema/TC tú mismo y no lo compartas, siempre puedes instalar personalizaciones de forma gratuita. Nadie te lo impide.


Lamento si esto suena grosero o cortante, o si doy vueltas y repito lo mismo.


  1. Excepto por encargos de pago, que es tu propia elección patrocinarlo. ↩︎

  2. es decir, las que se enumeran aquí en Meta o en GitHub públicamente ↩︎

Pero esas vienen “adicionales” a la versión de código abierto, por lo que la mera existencia de un CLA no hará que Discourse no sea libre.

Esto no se trata de libre como en gratis, sino de libre como en ‘hay una licencia no restrictiva’. What is Free Software? - GNU Project - Free Software Foundation

Eso no es necesariamente cierto. De nuevo: se trata de libre como en libertad, no como en precio. Hay proyectos de código abierto que tienen licencias que son demasiado restrictivas para ser consideradas software libre según la definición de la FSF. Ejemplos son MongoDB y ElasticSearch.

Ejecutar software libre no implica que tengas control sobre él.

Así que parece que estás mezclando ‘confiable’ y ‘libre’. Cuando un administrador de servidor compila Discourse, el proceso de compilación descarga todo tipo de paquetes de NPM. ¿Se puede confiar siempre en ellos? (La historia nos ha enseñado que este no es el caso - ejemplo y otro).

¿“Supongo” :thinking: Un administrador de servidor puede hacer modificaciones sin cambiar el hash del commit. Y un plugin también puede inyectar código Javascript.

Lamento decirte que eso no es cierto.

Esto no se trata de libre o no libre o de código abierto o cerrado, sino de confianza.

Si visitas una instancia de Discourse, tendrás que confiar en

  • el(los) administrador(es) del servidor
  • todos los que tengan acceso de commit en la organización de Discourse de GitHub
  • todos los que tengan acceso de commit en los repositorios de plugins
  • todos en GitHub
  • toda la cadena de software de NPM
  • todos los que tengan acceso de commit a cualquier repositorio de NPM que se esté utilizando
  • todos los que tengan control sobre el software de tu navegador
  • la empresa que proporcionó el certificado SSL y la cadena de confianza

¿Lo que serán al menos unas pocas miles de personas?

Los plugins y componentes de temas se pueden encontrar en repositorios separados.
No todos los plugins son de código abierto (por ejemplo, discourse-customer-flair-plugin no lo es, que yo sepa). Así que ahí lo tienes. Tendrás que dejar de usar Meta :wink: Es broma, por supuesto. Mi punto es que puede haber suficiente confianza sin que todo sea de código abierto o libre.

Solo algo, @JacobK1, ¿has leído la licencia de Discourse?

Citando algunos puntos que pueden ser relevantes:

la Licencia Pública General de GNU
pretende garantizar su libertad para compartir y modificar software libre, para asegurar que el software sea libre para todos sus usuarios.

Puede modificar su copia o copias del Programa o cualquier porción
del mismo, formando así una obra basada en el Programa, y copiar y
distribuir dichas modificaciones u obra bajo los términos de la Sección 1
anterior

Espero que esto haya sido respondido arriba y en la cita anterior a esta.

Si entiendo correctamente, todo esto está principalmente vinculado a javascript. Y se trata de lo que se ejecuta con javascript dentro de tu navegador, que es servido por cada instancia de Discourse. También se trataría principalmente de “confianza” y de tener la capacidad de saber qué código se ejecuta (poder echarle un vistazo). ¿Correcto?

Esto está bastante por encima de mis capacidades, pero ¿puedes tener “control” sobre esto? A menos que estuvieras enviando un commit que cambiara las cosas para todos, no creo que pudieras “arreglarte” realmente nada aquí, ya que lo que llamas el “software” que se ejecuta en tu computadora te lo proporciona el servidor a tu navegador cada vez.

Incluso si cada foro publicara su propio código de código abierto, con todas las modificaciones posibles, ¿puedes saber con certeza que eso es lo que realmente están ejecutando en todo momento? No es como si pudieras descargarlo una vez, revisarlo y compilarlo tú mismo en tu extremo.

Lo que realmente querrías es:

  1. Sin javascript (no hay suerte con Discourse en ese aspecto, ya que depende bastante de él) o
  2. Un cliente independiente de código abierto realmente instalado en tu computadora. Este último tampoco necesitaría usar javascript, si todo esto es posible con Discourse, lo cual no sé. Entonces podrías modificar tu cliente y tener el control sobre él que buscas.

¿Sería esa una comprensión justa?
(PD: También está por encima de mis capacidades, pero si mal no recuerdo, no el 100% del código de Discourse es de código abierto. Ahora, en realidad solo te importa lo que se ejecuta en tu extremo, no todo lo del lado del servidor)

Todo excepto parte de nuestro código de alojamiento/infraestructura es de código abierto.

@Jagster

Quizás estaba siendo un poco demasiado dramático :slight_smile:

Dado que obtengo la gran mayoría de mi software usando apt install en lugar de un navegador web, y confío en mi distribución de software (Trisquel) para distribuir solo software libre, esto no suele ser una preocupación.

Solo para aclarar, no estoy diciendo que las personalizaciones sean necesariamente malas, sino que pueden serlo si no son libres, por lo que una forma de asegurarse de evitar ejecutar software no libre es desactivar las personalizaciones.

Creo que todo el software debería ser libre.

@Jagster @RGJ

Para ser claro, no estoy intentando decir que Discourse no sea libre. Solo es esta distribución particular de Discourse (Discourse Meta) la que parece incluir software no libre.

@Jagster @merefield

Debería haber mencionado en mi publicación anterior que otra razón por la que pensé que esta distribución sería libre es que la página de información sobre Discourse dice: “Solo hay una versión de Discourse – la increíble versión de código abierto”. Esto, de nuevo, es técnicamente cierto porque los complementos no forman parte de Discourse, pero me pareció engañoso.

Discourse podría no tener control sobre las distribuciones de terceros, pero habría esperado que las instancias de Discourse alojadas por Discourse fueran software libre si dicen lo que dicen en la página de información. También podría haber esperado una licencia y/o un marco que requiriera efectivamente que los derivados fueran software libre, lo cual existe en cierto modo, ya que Discourse es GPL, pero supongo que no cubre los complementos.

@merefield @NateDhaliwal

Creo que cobrar dinero por software o servicios está bien; usualmente el “libre” en “software libre” significa “libre”, en el sentido de que eres libre de hacer lo que quieras con él (copiar, modificar, etc.), una vez que lo obtienes. No significa necesariamente que sea “gratis”, es decir, de costo cero.

@NateDhaliwal

Estrictamente hablando, sí, no hay nadie que me lo impida, pero sería ilegal, lo cual parece malo. Para uso privado esto podría funcionar, pero en general los repositorios públicos de software y las tiendas de aplicaciones no quieren incluir código ilegal, y algunas personas que podrían querer usar el software podrían sentirse incómodas ejecutando código copiado ilegalmente. No estoy seguro de tener el enfoque correcto; quizás debería simplemente ignorar por completo los derechos de autor, pero eso no parece la mejor opción cuando es factible evitar software ilegal y no libre.

¡Sin problemas! :slight_smile: No creo que estés siendo grosero, y aún no siento que estemos dando vueltas.

@RGJ

¿Qué quieres decir con esto? Si el software es libre, eso significa que puedo modificarlo; por lo tanto, sí tengo control sobre lo que hace.

No creo que libre sea lo mismo que confiable; quizás debería haber dicho “arbitrario” en lugar de “no confiable”, pero mi punto era que la mayoría de los navegadores ejecutarán cualquier código que una página web les dé, y como a menudo visito sitios web que nunca antes había visitado, muchos de los sitios que visito son “no confiables”. Para estos sitios, no tengo ninguna razón para pensar que no enviarán software no libre.

Con respecto a NPM, lo considero más confiable que un sitio web arbitrario, pero quizás no tan confiable como mis repositorios apt o guix. Aunque la confianza no es unidimensional; aunque no confiaría en un paquete nuevo en NPM solo porque está en NPM, confiaría en que cuando descargo JQuery de NPM realmente es JQuery. NPM puede cometer errores que permitan a un atacante reemplazar JQuery, pero NPM podría tomar medidas para evitar malware que no serían tan realistas para JavaScript servido por sitios (por ejemplo, revisión automatizada/manual antes de la publicación, revisión crowdsourcing después de la publicación, verificación automática de que los scripts minificados/ofuscados coincidan con el código fuente, reglas contra la descarga y ejecución de código arbitrario en tiempo de ejecución). Es importante destacar que cuando se encuentra malware en NPM, hay una tercera parte (NPM, a diferencia del desarrollador del software) a quien reportarlo para que pueda ser eliminado. Este no es el caso del JavaScript servido por sitios; el único que puede eliminarlo es el operador del sitio.

¿Significa eso que el hash del commit listado sería incorrecto si un administrador de servidor hiciera modificaciones y no cambiara también el hash del commit listado? Pensé que actualizar el software cambiaría el hash del commit automáticamente, y yo (incorrectamente?) asumí que el hash del commit listado se actualizaría automáticamente.

¿Se deshabilitaría el JavaScript inyectado por complementos con safe_mode=no_themes,no_unofficial_plugins?

Entonces, ¿sería la única forma de evitar software no libre mientras se usa Discourse empaquetar un cliente de Discourse como una extensión del navegador o un paquete de Haketilo o algo similar?

No estoy seguro de lo que quieres decir con eso, considerando que mi pregunta original es sobre la libertad del software, no sobre la confianza.

No estoy de acuerdo en que todos los que has listado deban ser confiados.

  • Los administradores del servidor no tendrían que ser confiados si no ejecutas el software servido por ellos, por ejemplo, si obtienes el cliente de Discourse de GitHub y lo empaquetas para que pueda usarse con ese servidor.
  • En muchos casos, las personas que colaboran en software pueden leer algunos de los commits de los demás, por lo que no tengo que confiar individualmente en todos los autores.

Entonces, ¿eso significaría que el cliente de Discourse Meta es software propietario, verdad? Aunque es posible usar el modo seguro para desactivar el JavaScript del complemento.

Quizás, pero eso no es muy útil si quiero evitar software no libre.

@NateDhaliwal
He leído la licencia en el repositorio git de Discourse, pero (debido al CLA) no necesariamente se aplica a los derivados de Discourse fuera de ese repositorio. Me gustaría ver un aviso en cada distribución de Discourse que indique cuál del software distribuido es libre. Incluso (en mi opinión) encajaría con el espíritu de la GPL: “debes mostrarles estos términos para que conozcan sus derechos”.

@Mevo

Sí, es posible ejecutar JavaScript desde una extensión del navegador o un proxy, como Haketilo o GreaseMonkey, aunque esto puede ser muy poco práctico para algunos softwares, por ejemplo, si se actualizan muy a menudo, como sería el caso de softwares donde los datos están integrados en el software JavaScript. Haketilo tampoco tiene soporte para algunos tipos de scripts, por ejemplo, scripts con un tipo de “módulo”.

Sí, creo que tu comprensión es correcta en general. Aunque empaquetar el JavaScript como una extensión del navegador o para Haketilo o GreaseMonkey daría como resultado efectivamente un cliente instalado independiente, incluso aunque esté usando JavaScript.

@HAWK

Supongo que te refieres a “Todo” como en “todo lo que forma parte de Discourse”, es decir, no incluyendo complementos como discourse-customer-flair-plugin?

Todo lo que forma parte del producto principal que alojamos (incluido Meta), con la excepción que señalé anteriormente, es gratuito y de código abierto.

Algunos plugins dependen de plataformas propietarias para funcionar, pero eso no tiene nada que ver con que Discourse sea o no de código abierto.

Todas las instancias de Discourse alojadas por CDCK o por nosotros (soy cofundador de una empresa que aloja Discourse) están ejecutando uno o varios plugins de código cerrado para proporcionar cierta funcionalidad específica del entorno de alojamiento.

Creo que hay mucha confusión entre una distribución en el buen sentido clásico (aquí tienes un repositorio de GitHub y siéntete libre de hacer lo que quieras) y una distribución en el sentido más moderno (aquí tienes un sitio web y envía JavaScript a tu navegador). Además, hay confusión entre Discourse https://github.com/discourse/discourse y Discourse y todos sus plugins y componentes temáticos de terceros añadidos por los administradores del sitio.

Es un hash de commit, por lo que si se realizan modificaciones después de extraerlo del repositorio y antes de confirmarlo, ya tienes tal situación. Eso no necesita ser un acto malicioso, también sucederá si se aplican parches de seguridad (que normalmente se hacen antes de confirmarlos en una rama pública). Ahora, en general, los parches de seguridad no son del lado del cliente, pero podrían introducir algún código actualizado del lado del cliente.

Sí, al menos en teoría. No estoy seguro de lo difícil que es eludir eso (deliberada o accidentalmente).

:thinking: Was the iOS SSL Flaw Deliberate? - Schneier on Security

Sería una forma, no estoy seguro de si es la única. Si haces esto, necesitarías actualizarlo casi a diario para evitar que las cosas se rompan.

Aunque todo este tema es una discusión legal interesante, todo parece un poco desconectado de la realidad.

@HAWK

¿Hay un repositorio separado con una licencia para los plugins que no encontré antes, como discourse-customer-flair-plugin? El JavaScript que se sirve al navegador tiene un enlace a un mapa de origen pero ninguna licencia, hasta donde puedo decir.

Mi entendimiento de “código de alojamiento/infraestructura” no incluiría JavaScript del lado del cliente; ¿es eso correcto?

@RGJ

Estoy de acuerdo. Creo que estoy confundido sobre a qué se aplica realmente la palabra “Discourse”.

Ah, de acuerdo, así que supongo que no habría una buena manera de saberlo.

Buen punto, alguien podría intentar ocultar una falla como esta. Pero parece más fácil mitigar ese problema auditando código de terceros que confiando en cada persona que alguna vez modificó el código original, aunque probablemente ninguno de los enfoques sería completamente práctico.

Sí, aunque es posible que la mayoría de las actualizaciones se puedan manejar automáticamente.

Supongo que eso es mayormente cierto en este caso.

Solo para tu información, @JacobK1: Bien hecho con Discourse, no es necesario etiquetar a alguien cuando citas a esa persona. La cita en sí ya generará una notificación :+1: (también era para crear subsecciones, hay que admitirlo :pray: )