Hola a todos ![]()
Me disculpo de antemano por este mensaje tan largo, pero quizás alguien familiarizado con Discourse conozca las respuestas de inmediato.
Co-dirijo un foro de interés especial que está moderado. Somos dos personas y el otro compañero escribió el software (también en Ruby). El foro existente es un software completamente personalizado, destacable por su simplicidad en comparación con, por ejemplo, PHP-BB y Vbulletin (y estos siguen siendo hackeados constantemente). La base de datos tiene aproximadamente 40 GB y contiene 200 mil publicaciones. Por varias razones, estamos considerando migrar la base de datos a otra plataforma y Discourse parece ser una opción viable.
Las pruebas preliminares sugieren que es bastante bueno en cuanto a funcionalidad general, por ejemplo, el soporte para incrustar imágenes y videos. ¡Incluso la carga múltiple de imágenes desde un teléfono Android funciona correctamente!
Sin embargo, necesitaríamos algunas personalizaciones; principalmente simplificaciones de la interfaz de usuario. Algunos ejemplos, sin un orden particular de importancia, son:
-
No mostrar el conteo total de publicaciones de un usuario: esto es para evitar que los nuevos miembros se sientan intimidados.
-
Bloquear la edición de publicaciones por parte del usuario después de un tiempo (actualmente lo establecemos en 2 horas): esto es para evitar un tipo de acoso que no es infrecuente en este ámbito.
-
Una sección de anuncios clasificados, con un medio de pago por el anuncio (Paypal), sería ideal… Me doy cuenta de que esto no es trivial debido a la configuración de la estructura de precios, el enlace de pago, etc.
-
Mostrar el año en la fecha de la publicación de forma destacada.
-
Capacidad para que los administradores accedan a un usuario y vean quién más está activo bajo la misma instalación del navegador (básicamente, solo cookies). Veo que Discourse ya tiene esto, pero basado en la IP, lo cual hoy en día no es efectivo (muchas personas usan datos móviles, especialmente aquellos que desean ejecutar múltiples identidades). Leí este hilo:
Handling trolls with multiple accounts over VPNs - #18 by ljpp
y otros, por lo que claramente muchos otros han pasado por esto, y no hay soluciones para alguien que es hábil con VPNs, etc.; tienden a revelarse eventualmente a través de su estilo de publicación o al publicar algo realmente desagradable que luego los hace ser baneados. También sugeriría que detectar el mismo hash de contraseña sería una ventaja, ya que muchas personas usan la misma contraseña para todos sus personajes
-
Para los administradores, un listado lineal simple de publicaciones, que permita una revisión muy rápida de las últimas x publicaciones desde un teléfono. Imagino que esto podría hacerse con un poco de código que acceda directamente a la base de datos, en un subdominio. Dentro de este listado, tener botones de ELIMINAR y BANEAR, para que alguien que publique algo desagradable (lamentablemente no desconocido en los foros) pueda ser eliminado rápidamente.
-
Esto quizás ya esté implementado, según lo que puedo ver: la fusión por parte del administrador de publicaciones seleccionadas (o todas) de un hilo a otro, terminando con las publicaciones en el hilo de destino en el orden cronológico correcto. Me doy cuenta de que esto puede romper los enlaces a las publicaciones, a menos que el enlace sea único en el sitio (por ejemplo, si es el número de publicación en la base de datos, en lugar del número de publicación en el hilo).
-
Generación por parte del administrador de una lista de correo CSV de todas las personas que han iniciado sesión en los últimos 12 o 24 meses. Descubrimos que enviar correos a personas más antiguas (más inactivas) aumenta enormemente las posibilidades de ser incluido en listas negras (RBL, etc.), a pesar de que el envío (principalmente sobre reuniones, unas pocas veces al año) se realiza lentamente, solo 1 correo por minuto, para minimizar el riesgo (también bloqueamos en el envío todas las direcciones conocidas desechables, por ejemplo, sharklasers.com).
-
Una configuración de usuario en el perfil del usuario para seleccionar si desea recibir estos correos, para cumplir con el GDPR.
Acabo de leer el hilo aquí sobre el GDPR. Según mi comprensión en el Reino Unido, un autor no tiene derecho a exigir la eliminación de sus publicaciones. Puede tener eliminados sus datos de inicio de sesión. Me pregunto si Discourse es de alguna manera adicionalmente vulnerable en este aspecto. En nuestro foro, casi todo el mundo usa un apodo de todos modos.
-
Capacidad para que los administradores lean los mensajes privados (PM). Esto es esencial porque muchos spammers se registran y solo envían mensajes privados, no publican. No nos enteraríamos a menos que alguien se queje, pero muchos nuevos registros son sospechosos (aunque no claramente), así que los observamos por un tiempo… Por ejemplo, tenemos una configuración de País en el perfil del usuario que debe especificarse durante el registro, y alguien que establece Alemania allí pero está en una IP tailandesa es probablemente sospechoso, ¡pero podría ser un alemán en Tailandia!
-
Una configuración de País para la ubicación del usuario, aplicada durante el registro (me doy cuenta de que pueden poner lo que quieran allí).
Me doy cuenta de que si se hacen modificaciones al código, aplicar actualizaciones podría ser difícil o imposible…
Los registros sospechosos son un problema real. Calculo que, actualmente, entre el 10% y el 20% de los registros son sospechosos, por lo que si no se hace nada, se tendrán muchos problemas en el futuro. El comportamiento habitual es registrarse y esperar una semana, luego bombardear el foro con spam.
Lamentablemente, no sé nada de Ruby. Hice un poco de PHP. Mi experiencia en TI es más general: servidores POP y SMTP, máquinas virtuales, VPNs, FTP, SPF, DKIM, configuraciones de routers. HTML simple pero sin CSS… Mi antigua experiencia en TI es en hardware y software de sistemas embebidos (ensamblador y C). El tipo que escribió el software original ofrece ayudar con la migración de la base de datos. Tengo algunos contactos que pueden hacer otras partes, pero no tengo experiencia directa en Ruby actualmente… Tengo algunos sitios funcionando en un servidor Linode que ha funcionado muy de manera confiable, por lo que sería la opción #1 para el alojamiento.
Gracias de antemano por leer hasta aquí y por quizás dar algunas indicaciones sobre cuánto de esto ya está disponible y cuánto trabajo implicaría hacer el resto, o algo similar ![]()