Безопасная настройка nginx для php

Я хочу использовать nginx для сайтов Symfony2 и других программ, таких как phpMyAdmin.

Я прочитал документы nginx по настройке Symfony2 и столкнулся с этой проблемой: http://www.webhostingtalk.com/showthread.php?p=6807475

Могу ли я просто использовать security.limit_extensions=php а потом использовать что-то подобное безопасно?

location \.php$ {
  ...
}

Этот блог, кажется, указывает, что это обходной путь для проблемы безопасности с загрузкой файлов: http://kaiwangchen.com/blog/2012/10/understand-the-cgi-fix_pathinfo-security-issue/

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

Или я должен использовать try_files?

1 ответ

Решение

Используйте комбинацию try_files а также security.limit_extensions=php и просто убедитесь, что созданная вами папка загрузки не имеет абсолютно никакой возможности выполнить какой-либо код. Последнее - это самое важное и единственное, что будет держать вас в безопасности от этой проблемы до конца времен.

Пример:

/var/www/src      ->  execute PHP files
/var/www/uploads  ->  only accessible for static delivery
Другие вопросы по тегам