Cómo establecer la bandera segura para la cookie _forum_session

Hola,

Nuestro sitio debería funcionar con HTTP y HTTPS; necesitamos asegurar la cookie (_forum_session). La cookie solo tiene la bandera HttpOnly y le falta la bandera Secure. ¿Cómo se puede configurar para que también tenga la bandera Secure?

Gracias

Debes configurar tu sitio para que funcione solo con https.

4 Me gusta

¿No hay forma de modificar el código en Discourse?

Hola @mevaha

La tendencia en la web, durante muchos años, ha sido utilizar exclusivamente HTTPS.

Esto solía ser un problema hasta que organizaciones como Let’s Encrypt (LE) comenzaron a ofrecer certificados SSL de forma gratuita y proporcionaron un mecanismo robusto para gestionar los certificados.

Cuando se utiliza LE (certbot) para configurar los certificados en tu sitio, se establecerá tanto HTTP como HTTPS, y el tráfico HTTP se redirigirá completamente a HTTPS de forma automática.

Por supuesto, puedes encontrar una forma de ejecutar Discourse solo con HTTP, pero esto no tendrá soporte excepto en el desarrollo de Discourse; ya que sin HTTPS, toda la información de inicio de sesión de los usuarios, incluidas las contraseñas, se transmitiría sin cifrar a través de la red. Esto NO tiene soporte en producción.

Piénsalo de esta manera: HTTPS es como usar el cinturón de seguridad en un coche. Las personas que quieren conducir sin cinturón lo hacen bajo su propio riesgo; por lo tanto, los fabricantes de automóviles no van a producir coches sin cinturones de seguridad.

Lo mismo ocurre con Discourse. Discourse está diseñado para ejecutarse de forma segura en producción; por lo tanto, la versión compatible de Discourse en producción es HTTPS.

Espero que esto ayude.

Lo siento por no ser más útil.

1 me gusta

Gracias, @neounix. Nuestro problema es que el certificado HTTPS es gestionado por el balanceador de carga y solo el puerto 80 está abierto entre Discourse y el balanceador. Intentamos redirigir HTTP a HTTPS sin éxito. ¿Podrías compartir conmigo el archivo de configuración de cookies en Discourse?

Gracias

Hola @mevaha

Si ese es el caso, es muy probable que tengas un proxy inverso delante de tu equilibrador de carga (o como parte de él).

Déjame explicarlo.

El proxy inverso (con equilibrador de carga, si lo tienes) se comunica con Discourse en el backend usando HTTP.

Así que tienes razón al decir que Discourse solo usa HTTP, pero solo para comunicarse con el proxy inverso, no con el mundo exterior.

Funciona así:

USUARIOS WEB  <-----> HTTPS  <-----> PROXY INVERSO <----> HTTP <----> EQUILIBRADOR DE CARGA <----> DISCOURSE (DOCKER)

Por lo tanto, puedes exponer tu contenedor Docker de DISCOURSE en el puerto 80 (solo HTTP), como mencionas.

Sin embargo, en el sitio web expuesto al público, necesitas un proxy inverso que reenvíe las solicitudes HTTPS al backend usando HTTP.

Tu proxy inverso (con equilibrador de carga), si está configurado correctamente, asegurará que las cookies y encabezados HTTP se transmitan correctamente en ambas direcciones.

Espero que esto te ayude.

Si tienes más preguntas, no dudes en preguntar.

Ten en cuenta que si nos proporcionas los detalles técnicos exactos de tu arquitectura, nos será mucho más fácil ayudarte; después de todo, no tenemos una aplicación de bola de cristal :slight_smile:

2 Me gusta

Muchas gracias @neounix

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.