Настройки и установленные плагины видны на странице входа

Всем привет,

Мы хотим решить проблему на странице входа наших серверов Discourse. В настоящее время на странице входа раскрываются настройки сервера, а также установленные плагины. Это можно увидеть, если просмотреть исходный код страницы или использовать инструменты разработчика для её инспекции. Как нам убрать эту информацию со страницы или скрыть её?

Пример раскрытого кода плагина:

<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"/>

Пример раскрытых настроек:

<div class="hidden" id="data-preloaded" data-preloaded="{\"site\":\"{\\\"periods\\\":[\\\"all\\\",\\\"yearly\\\",\\\"quarterly\\\",\\\"monthly\\\",\\\"weekly\\\",\\\"daily\\\"],\\\"filters\\\":[\\\"latest\\\",\\\"unread\\\",\\\"new\\\",\\\"read\\\",\\\"posted\\\",\\\"bookmarks\\\"],\\\"user_fields\\\":[],\\\"auth_providers\\\":[]}",\"siteSettings\":\"{\\\"default_locale\\\":\\\"en\\\",\\\"title\\\":\\\"bobDiscourse\\\",\\\"short_site_description\\\":\\\"bob Integration Discourse\\\",\\\"contact_email\\\":\\\"infrastructure@bob.com\\\",\\\"contact_url\\\":\\\"https://bob.com\\\",\\\"logo\\\":\\\"/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\\\",\\\"logo_small\\\":\\\"/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\\\",\\\"digest_logo\\\":\\\"\\\",\\\"mobile_logo\\\":\\\"\\\",\\\"large_icon\\\":\\\"/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\\\",\\\"favicon\\\":\\\"/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\\\",\\\"apple_touch_icon\\\":\\\"\\\",\\\"allow_user_locale\\\":false,\\\"support_mixed_text_direction\\\":false,\\\"suggested_topics\\\":5,\\\"ga_universal_tracking_code\\\":\\\"\\\",\\\"ga_universal_domain_name\\\":\\\"auto\\\",\\\"gtm_container_id\\\":\\\"\\\",\\\"top_menu\\\":\\\"categories|latest|new|unread|top\\\",\\\"post_menu\\\":\\\"read|like|share|flag|edit|bookmark|delete|admin|reply\\\",\\\"post_menu_hidden_items\\\":\\\"flag|bookmark|edit|delete|admin\\\",\\\"share_links\\\":\\\"twitter|facebook|email\\\",\\\"desktop_category_page_style\\\":\\\"categories_with_featured_topics\\\",\\\"category_colors\\\":\\\"BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|E45735\\\",\\\"category_style\\\":\\\"bullet\\\",\\\"enable_mobile_theme\\\":true,\\\"relative_date_duration\\\":30,\\\"fixed_category_positions\\\":false,\\\"fixed_category_positions_on_create\\\":false,\\\"enable_badges\\\":true,\\\"enable_badge_sql\\\":false,\\\"enable_whispers\\\":false,\\\"push_notifications_prompt\\\":true,\\\"vapid_public_key_bytes\\\":\\\"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\\\",\\\"invite_only\\\":true,\\\"login_required\\\":true,\\\"must_approve_users\\\":false,\\\"enable_local_logins\\\":true,\\\"enable_local_logins_via_email\\\":true,\\\"allow_new_registrations\\\":true,\\\"enable_signup_cta\\\":true,\\\"enable_sso\\\":false,\\\"sso_overrides_email\\\":false,\\\"sso_overrides_avatar\\\":false,\\\"min_username_length\\\":3,\\\"max_username_length\\\":20,\\\"unicode_usernames\\\":false,\\\"min_password_length\\\":10,

Все эти настройки требуются на стороне клиента, и их в любом случае можно вывести, так что они едва ли являются секретом.

В чём именно ваша проблема с этим?

Спасибо, Ричард.

Судя по вашему ответу, это стандартная конфигурация, и риск был оценён и признан незначительным.

Я считал, что это проблема, по следующим причинам:

Когда злоумышленник ищет уязвимости в веб-сайтах и способы их возможной эксплуатации, он начинает с сбора максимально возможной информации о них. Информация в коде сайта позволяет злоумышленнику перейти от полного отсутствия знаний к более глубокому пониманию системы без значительных усилий.

Например, настройки дают атакующему очень чёткие указания о том, как была настроена модель безопасности, что позволяет ему выбрать конкретную вектор атаки. Минимальная длина имени пользователя, максимальная длина имени пользователя, минимальная длина пароля — все эти параметры полезны для сужения круга возможных векторов атаки. Включён ли SSO? Включена ли двухфакторная аутентификация (2FA) или нет?

Эта информация также полезна для поиска серверов Discourse в интернете, которые могут быть неправильно сконфигурированы. С помощью Google Dork можно найти серверы Discourse, которые потенциально небезопасны или легко взламываются.

Если бы эта информация не была доступна в формате JSON в исходном коде, на написание скрипта для её извлечения всё равно потребовалось бы около часа. В конце концов, при попытке регистрации валидатор формы также предоставит вам такую информацию, как допустимая длина имени пользователя и пароля.

Я не считаю, что какая-либо из этой информации раскрывает какие-либо сведения о неправильной конфигурации или небезопасной настройке.

Discourse имеет открытый исходный код, а настройки по умолчанию и так общедоступно документированы.

Очевидно, это не является достаточным преимуществом для получения вознаграждения за взлом.

Я не понимаю, как мы перешли от моего первоначального вопроса, в котором я хотел сократить количество информации на странице входа на наших сайтах Discourse, к обсуждению программы вознаграждений за уязвимости? То, о чём я спрашиваю, не является уязвимостью в коде. Это просто больше информации, чем мне комфортно видеть на странице входа, и я хотел найти способ её убрать.

Пожалуйста, придерживайтесь темы.

Привет, Ричард,

Я придерживаюсь иного мнения по этому вопросу, но такова моя позиция, и я понимаю, что у других людей может быть другой взгляд на это. Мне кажется, что мы несколько отошли от первоначального запроса, обсуждая потенциальные угрозы, которые могут быть риском, а могут и не быть.

Есть ли способ снизить видимость этой информации или это невозможно? Если нет, я продолжу, и мы можем закрыть этот запрос в службу поддержки.