Как предотвратить внедрение заголовка хоста в PHP и Apache

#php #apache

Вопрос:

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

  $allowed_hosts = [  "127.0.0.1",  "localhost",  "10.x.x.28" ];  if (isset($_SERVER['HTTP_HOST']) amp;amp; !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {  http_response_code(403);  die(); }  if (isset($_SERVER['SERVER_NAME']) amp;amp; !in_array($_SERVER['SERVER_NAME'], $allowed_hosts)) {  http_response_code(403);  die(); }   

Когда я проверяю его с помощью BurpSuite, он отлично работает для http://localhost/mysite/ (с завершающей косой чертой) , но когда я получаю доступ http://localhost/mysite (без завершающей косой черты) с измененным заголовком хоста выше кода не оказывает никакого эффекта.

Пожалуйста, предложите мне это, если мне придется настраивать сервер или писать код.

Комментарии:

1. Я предполагаю, что ваш веб-сервер выполняет быстрое перенаправление с http://localhost/mysite «на http://localhost/mysite/ «.