SSI-модуль nginx; отключить включение файла?

Я смотрю на модуль NGINX SSI, и мне интересно, есть ли способ заблокировать опцию «файл» в SSI.

http://nginx.org/en/docs/http/ngx_http_ssi_module.html

Чтобы кто-то этого не делал

 <!--# include file="/etc/passwd" -->

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


person Daniel    schedule 05.12.2014    source источник


Ответы (1)


Прежде всего, единственный способ быть полностью уверенным в том, что этого не произойдет, — запустить nginx от имени пользователя без полномочий root (для этого есть много других причин, и я уверен, что вы уже это делаете).

Еще одна вещь, которую следует учитывать, заключается в том, что SSI обычно следует рассматривать как привилегированный код, как и сценарии CGI. Вы не должны вообще разрешать их от ненадежных пользователей.

Тем не менее, ответ на ваш вопрос заключается в том, что nginx обрабатывает (исходный код) директиву SSI include, обрабатывая параметры file и uri одинаково и передавая их в ngx_http_subrequest. По сути, это то же самое, что и обслуживание запроса файла для данного файла, в частности, в том, что имя разрешается относительно действующей в настоящее время директивы root. Таким образом, есть еще некоторые соображения безопасности, но в целом это намного безопаснее, чем если бы синтаксический анализатор SSI просто откройте и прочитайте файл самостоятельно.

person jjm    schedule 05.12.2014