Рейтинг:2

Нужна ли мне настройка доверенного хоста?

флаг cn

Нужна ли мне настройка доверенного хоста для сайта Drupal 7? Если да, то как мне его настроить?

Я заметил, что Backdrop CMS имеет его в своем файле настроек.

Рейтинг:4
флаг us

Drupal 7 ограничивает длину имени хоста только 1000 байтами, чтобы предотвратить DoS-атаки, и не принимает имена хостов, содержащие косую черту, но не ограничивает разрешенные имена хостов на основе значения, установленного в настройки.php файл, как это делают Drupal 8 и Drupal 9.

Код, проверяющий значение HTTP_HOST заголовок содержится в drupal_valid_http_host().

// Ограничить длину имени хоста до 1000 байт, чтобы предотвратить DoS-атаки с
// длинные имена хостов.
return strlen($host) <= 1000 && substr_count($host, '.') <= 100 && substr_count($host, ':') <= 100 && preg_match('/^\[?(?:[a -zA-Z0-9-:\]_]+\.?)+$/', $host);

Функция вызывается drupal_environment_initialize().

если (!isset($_SERVER['HTTP_REFERER'])) {
  $_SERVER['HTTP_REFERER'] = '';
}
if (!isset($_SERVER['SERVER_PROTOCOL']) || $_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.0' && $_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.1') {
  $_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.0';
}
если (isset($_SERVER['HTTP_HOST'])) {
  // Так как HTTP_HOST является вводом пользователя, убедитесь, что он содержит только разрешенные символы
  // в именах хостов. См. RFC 952 (и RFC 2181).
  // $_SERVER['HTTP_HOST'] здесь в нижнем регистре в соответствии со спецификациями.
  $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']);
  если (!drupal_valid_http_host($_SERVER['HTTP_HOST'])) {
    // HTTP_HOST недействителен, т.е. если содержит косые черты, это может быть атакой.
    header($_SERVER['SERVER_PROTOCOL']. '400 Неверный запрос');
    выход;
  }
}
еще {
  // Некоторые клиенты до HTTP/1.1 не будут отправлять заголовок Host. Убедитесь, что ключ
  // определено для соответствия E_ALL.
  $_SERVER['HTTP_HOST'] = '';
}

Существует патч, который должен добавить в Drupal 7 тот же код, что и в Drupal 8, в Заголовку HTTP_HOST нельзя доверять. На данный момент разработка Drupal 7 замедлилась, особенно с тех пор, как Drupal 8 и Drupal 9 разрабатывались одновременно.
Поскольку это считается улучшением безопасности (по-видимому, маловероятно, что это будет считаться проблемой безопасности, иначе проблема не будет обсуждаться публично), вы можете применить патч, представленный в этом выпуске (последний момент, когда я опубликовал этот ответ, https://www.drupal.org/files/issues/2021-02-04/http_host_header_cannot_bet_trusted-2221699-151.patch) и начните использовать $conf['trusted_host_patterns'].

Рейтинг:1
флаг cn

Шаблоны доверенных хостов были введен в Drupal 8. Для Drupal 7 нечего настраивать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.