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