Configuración y plugins instalados expuestos en la página de inicio de sesión

Hola a todos,

Estoy buscando resolver un problema en la página de inicio de sesión de nuestros servidores Discourse. Actualmente, la página de inicio de sesión expone la configuración del servidor, así como los plugins instalados. Esto se puede ver si se examina el código fuente de la página o se inspecciona la página de inicio de sesión. ¿Cómo podemos eliminar o ocultar esta información de la página?

Ejemplo de código de plugin expuesto:

<link href="[/stylesheets/poll_desktop_2_aaf730f938a1162e369c60cef250ac2b3bf97c05.css?__ws=discourse.bob.host](https://discourse.bob.host/stylesheets/poll_desktop_2_aaf730f938a1162e369c60cef250ac2b3bf97c05.css?__ws=discourse.bob.host)" media="all" rel="stylesheet" data-target="poll_desktop" data-theme-id="3"/>

Ejemplo de configuración expuesta:

<div class="hidden" id="data-preloaded" data-preloaded="{&quot;site&quot;:&quot;{\&quot;periods\&quot;:[\&quot;all\&quot;,\&quot;yearly\&quot;,\&quot;quarterly\&quot;,\&quot;monthly\&quot;,\&quot;weekly\&quot;,\&quot;daily\&quot;],\&quot;filters\&quot;:[\&quot;latest\&quot;,\&quot;unread\&quot;,\&quot;new\&quot;,\&quot;read\&quot;,\&quot;posted\&quot;,\&quot;bookmarks\&quot;],\&quot;user_fields\&quot;:[],\&quot;auth_providers\&quot;:[]}&quot;,&quot;siteSettings&quot;:&quot;{\&quot;default_locale\&quot;:\&quot;en\&quot;,\&quot;title\&quot;:\&quot;bobDiscourse\&quot;,\&quot;short_site_description\&quot;:\&quot;bob Integration Discourse\&quot;,\&quot;contact_email\&quot;:\&quot;infrastructure@bob.com\&quot;,\&quot;contact_url\&quot;:\&quot;https://bob.com\&quot;,\&quot;logo\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;logo_small\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;digest_logo\&quot;:\&quot;\&quot;,\&quot;mobile_logo\&quot;:\&quot;\&quot;,\&quot;large_icon\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;favicon\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;apple_touch_icon\&quot;:\&quot;\&quot;,\&quot;allow_user_locale\&quot;:false,\&quot;support_mixed_text_direction\&quot;:false,\&quot;suggested_topics\&quot;:5,\&quot;ga_universal_tracking_code\&quot;:\&quot;\&quot;,\&quot;ga_universal_domain_name\&quot;:\&quot;auto\&quot;,\&quot;gtm_container_id\&quot;:\&quot;\&quot;,\&quot;top_menu\&quot;:\&quot;categories|latest|new|unread|top\&quot;,\&quot;post_menu\&quot;:\&quot;read|like|share|flag|edit|bookmark|delete|admin|reply\&quot;,\&quot;post_menu_hidden_items\&quot;:\&quot;flag|bookmark|edit|delete|admin\&quot;,\&quot;share_links\&quot;:\&quot;twitter|facebook|email\&quot;,\&quot;desktop_category_page_style\&quot;:\&quot;categories_with_featured_topics\&quot;,\&quot;category_colors\&quot;:\&quot;BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|E45735\&quot;,\&quot;category_style\&quot;:\&quot;bullet\&quot;,\&quot;enable_mobile_theme\&quot;:true,\&quot;relative_date_duration\&quot;:30,\&quot;fixed_category_positions\&quot;:false,\&quot;fixed_category_positions_on_create\&quot;:false,\&quot;enable_badges\&quot;:true,\&quot;enable_badge_sql\&quot;:false,\&quot;enable_whispers\&quot;:false,\&quot;push_notifications_prompt\&quot;:true,\&quot;vapid_public_key_bytes\&quot;:\&quot;4|170|50|111|127|76|83|223|177|204|254|218|146|40|188|175|8|235|76|71|207|133|49|159|219|30|44|72|138|250|138|188|150|192|11|194|246|81|233|148|144|142|143|243|38|251|133|5|10|219|95|160|9|246|246|186|2|162|200|182|219|187|92|28|26\&quot;,\&quot;invite_only\&quot;:true,\&quot;login_required\&quot;:true,\&quot;must_approve_users\&quot;:false,\&quot;enable_local_logins\&quot;:true,\&quot;enable_local_logins_via_email\&quot;:true,\&quot;allow_new_registrations\&quot;:true,\&quot;enable_signup_cta\&quot;:true,\&quot;enable_sso\&quot;:false,\&quot;sso_overrides_email\&quot;:false,\&quot;sso_overrides_avatar\&quot;:false,\&quot;min_username_length\&quot;:3,\&quot;max_username_length\&quot;:20,\&quot;unicode_usernames\&quot;:false,\&quot;min_password_length\&quot;:10,

Todos estos ajustes son necesarios en el cliente y, de todos modos, se pueden deducir, así que difícilmente son un secreto.

¿Cuál es exactamente tu problema con esto?

Gracias, Richard.

A juzgar por tu respuesta, esta es una configuración estándar y el riesgo ha sido considerado y determinado como no problemático.

Pensé que esto era un problema porque:

Cuando un adversario busca debilidades en sitios web y cómo podrían explotarlos, comienza obteniendo tanta información como sea posible sobre ellos. La información en el código del sitio web permite al adversario pasar de cero conocimiento a más conocimiento sin gastar mucho esfuerzo.

Como ejemplo, la configuración le da al atacante una guía muy clara sobre cómo se ha establecido el modelo de seguridad, lo que luego les permite dirigir un ataque. La longitud mínima de usuario, la longitud máxima de nombre de usuario y la longitud mínima de contraseña son todas útiles para reducir las vías de ataque. ¿Está habilitado el SSO? ¿Está habilitado o no el 2FA?

Esta información también es útil para encontrar servidores de Discourse en línea que puedan haber sido mal configurados. Se podría usar un Google Dork para encontrar servidores de Discourse que sean potencialmente inseguros o fáciles de vulnerar.

Si esta información no hubiera estado disponible en formato JSON en el código fuente, probablemente tomaría alrededor de una hora escribir un script que extraiga esta información de todos modos. Después de todo, al intentar registrarse, un validador de formularios también te proporcionaría información como la longitud de nombre de usuario y contraseña.

No creo que ninguna de esta información revele ningún tipo de dato sobre una mala configuración o una instalación insegura.

Discourse es de código abierto y los ajustes predeterminados están documentados públicamente de todos modos.

Claramente no es una ventaja suficiente para ganar una recompensa para hackers.

No estoy seguro de cómo hemos pasado de mi pregunta original, en la que quería reducir la cantidad de información en la página de inicio de sesión de nuestros sitios de Discourse, a una recompensa para hackers. Lo que pregunto no es una vulnerabilidad en el código. Simplemente hay más información de la que me siento cómodo teniendo en una página de inicio de sesión y quería encontrar una forma de eliminarla. Por favor, mantengámonos en el tema.

Hola Richard,

Tengo una opinión diferente a la tuya sobre esto, pero esa es mi postura y entiendo que otras personas pueden tener una perspectiva distinta. Siento que nos hemos alejado un poco de la solicitud inicial al discutir posibles amenazas que pueden o no representar un riesgo.

¿Existe alguna forma de que yo reduzca la visibilidad de esta información o eso no es posible? Si no lo es, seguiré adelante y podremos cerrar esta solicitud de soporte.