Sobre Zoom en los webinars de Discourse (y complementos)

Continuando la discusión desde Webinar: Conoce al equipo de proyectos de clientes de Discourse:

Solo quiero compartir que, lamentablemente, este problema no ha cesado y, por el contrario, se está agravando día a día. Estoy de acuerdo en que deben existir acuerdos comerciales, y mi intención aquí no es debatir sobre ellos, ya que no soy la persona adecuada para hacerlo, sino más bien solicitar humildemente apoyo para las plataformas seguras en el desarrollo principal de Discourse.

La integración de Zoom en Livestream y otros plugins es verdaderamente esencial para mantener reuniones periódicas entre los usuarios, y hoy en día está limitada y exclusiva a una plataforma que muchos no utilizan debido a innumerables eventos que la hacen insegura y no una opción viable.

Hoy me di cuenta de que una actualización del cliente de Zoom para Linux ha hecho que comience a leer proactivamente todo lo que se escribe en el portapapeles de X11.

Si guardas secretos interesantes en tu portapapeles —especialmente si un gestor de contraseñas lo usa como medio para llevar la contraseña a donde se necesita— ¡esto podría ser algo que necesites saber!

Se trata de Linux Zoom 7.1.5. Anteriormente tenía instalado la versión 6.6, que no hacía esto.

Parece que solo le importa la selección CLIPBOARD —la que tiene una UX similar a la de Windows, a la que normalmente copias explícitamente con una combinación de teclas como ^C y pegas con ^V (o similar). No mira la PRIMARY, la selección utilizada para el copiar y pegar tradicional de X11 de “seleccionar en esta ventana y luego hacer clic central en la otra”.

Parece que detecta los cambios del portapapeles a través de la extensión XFIXES, y cada vez que el portapapeles es reclamado por un nuevo propietario, envía inmediatamente a ese cliente una solicitud de pegado.

Me di cuenta porque hago un uso intensivo de una herramienta de “pegado de un solo uso” que cumple una única solicitud de pegado y luego termina. Útil para rellenar muchos campos de un formulario web: encolas pegados de varias cosas diferentes, luego vas a cada campo del formulario por turnos y simplemente presionas pegar, bam bam bam. Pero hoy, después de una actualización con apt, no funciona: mi herramienta de pegado de un solo uso termina en cuanto comienza, porque (descubrí después de depurar) Zoom siempre solicita un pegado inmediatamente.

(Los lectores habituales podrían recordar que alrededor de esta época del año pasado atrapé a Slack haciendo algo similar, pero solo cuando el foco entraba en la ventana de Slack, y también tenían una opción de configuración para desactivarlo. Una herramienta de pegado de un solo uso parece ser una buena manera de notar cosas extrañas ocurriendo en el servidor X!)

La forma en que funciona el mecanismo de selección de X11 es que cada vez que una aplicación quiere pegar, contacta al propietario actual de la selección y le pide que envíe los datos.

Esto permite algunos trucos divertidos, como escribir un cliente de selección que siempre pega la hora actual, en lugar de la hora en que se escribió el portapapeles (hablando lógicamente). Pero también significa que la aplicación propietaria de la selección sabe cuando alguien está pegando desde ella, y puede hacer cosas en respuesta.

Una herramienta de pegado de un solo uso es algo que se inicia, reclama la propiedad del portapapeles, espera hasta que haya recibido y cumplido una solicitud de pegado, y luego termina inmediatamente.

Resulta que uso una que escribí yo mismo. Pero existen otras. Una que ya está disponible en Debian y Ubuntu es ‘xclip’. Si haces esto …

sudo apt install xclip # si no lo tienes instalado ya
echo -n foo | xclip -selection primary -loop 1 -verbose

… Entonces, hacer clic central en alguna otra ventana debería causar dos cosas. Primero, pega ‘foo’. Pero también, la herramienta xclip termina, y tu símbolo de la shell vuelve en la primera terminal.

Si usas ‘-selection clipboard’ en lugar de ‘-selection primary’, escribirá en el otro portapapeles, el que normalmente se pega usando ^V o similar. Excepto que si estás ejecutando Zoom 7.1.5 en el mismo servidor X, no esperará a que pegues algo intencionalmente: terminará inmediatamente, porque ya recibió una solicitud de pegado de Zoom!