Назад | Перейти на главную страницу

Веб-сервер | IIS | Настройка запрета запуска определенных файлов

В настоящее время у меня есть веб-сервер под управлением Windows Server 2012, на котором запущен IIS в качестве веб-сервера и используется PHP.

Предположим, пользователь может загрузить троян на мой сервер либо через уязвимый размещенный сайт, либо через какой-либо другой эксплойт.

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

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

Как настроить свой сервер так, чтобы он разрешал запускать только скрипты php или, по крайней мере, запрещал злоумышленнику запускать определенные типы файлов?

С уважением

Есть несколько способов сделать это, которые сразу приходят в голову, но я думаю, что наиболее распространенным способом будет использование модуля фильтрации запросов, доступ к которому можно получить через диспетчер IIS. Я выделил это красным на картинке выше. Это позволяет блокировать запросы с определенными расширениями файлов, HTTP-командами, URL-адресами, HTTP-заголовками или строками запроса. Вы можете настроить это так, чтобы сервер мог обрабатывать только запросы с .php (и, возможно, .css, .html, .png, .jpg ... другие распространенные типы статических файлов).

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

Сопоставления обработчиков определяют, какие приложения настроены для работы с какими типами файлов. Здесь вы указываете IIS, что, когда он видит запрос на файл .php, ему необходимо запустить php.exe для его обработки. Вы потенциально можете удалить все ненужные сопоставления обработчиков (включая .), чтобы исключить вероятность того, что ваш сервер обработает файл с необычным расширением.