Безопасная настройка 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