Безопасность IIS

       

Директивы вставок серверной части (SSI)


Серверная часть представляет собой ограниченный тип приложения CGI. На самом деле ASP распознает элементы SSI просто в виде инструкции при обработке файла. На странице ASP можно использовать инструкцию #include для замещения этой инструкции содержимым другого файла. Следующая строка кода обеспечивает включение файла postalrates.inc в нужное место:

<!-- #include file="/includes/postalrates.inc" -->

Для обработки директивы SSI #include используется библиотека ssinc.dll, а затем asp.dll интерпретирует всю страницу. Это очень удобно при повторном использовании нескольких строк кода на различных страницах. Microsoft рекомендует применять вставку файлов для облегчения работы с ним, так как в этом случае для изменения кода на нескольких страницах требуется изменение только одной. Однако при открытии файла вставки непосредственно в браузере злоумышленник получит доступ к исходному коду, так как файлы вставок не обрабатываются ASP. Для предотвращения этого следует либо связать файлы вставок с расширением .inc с ASP, либо переименовать их, указав расширения .asp, чтобы обеспечить выполнение всего кода сценариев и возврат в веб-браузер только результатов обработки. (Обратитесь к разделу "Совместимость с приложением" в этой лекции.)

IIS поддерживает пять директив SSI:

#config #echo #fsize #flastmod #exec

Нельзя применять эти директивы на странице ASP. Вместо этого используйте одно из специальных расширений HTML, по умолчанию настроенных на употребление директив SSI в IIS: .stm, .shtm и .shtml. На защищаемом сервере директива #exec должна быть отключена, так как она позволяет выполнять программы командной строки или CGI в контексте веб-сервера в отдельном пространстве памяти. IIS по умолчанию отключает эту директиву, но следует убедиться, что следующий параметр реестра установлен на нуль (или отсутствует): HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters\SSIEnableCmdDirective.



Содержание раздела