Я хочу использовать nginx как для сайтов Symfony2, так и для другого программного обеспечения, такого как phpMyAdmin.
Я читал документы nginx по настройке Symfony2 и столкнулся с этой проблемой: http://www.webhostingtalk.com/showthread.php?p=6807475#post6807475
Могу я просто использовать security.limit_extensions=php
а затем безопасно использовать что-то подобное?
location \.php$ {
...
}
Этот блог, кажется, указывает, что это обходной путь для проблемы безопасности при загрузке файлов: http://kaiwangchen.com/blog/2012/10/understand-the-cgi-fix_pathinfo-security-issue/
Но большинство мест, где есть руководства по настройке nginx, рекомендуют старые решения, заключающиеся только в ограничении php определенными файлами. Поэтому я не был уверен, действительно ли это позволяет избежать инъекции произвольного кода.
Или я должен использовать try_files
?
Используйте комбинацию try_files
и security.limit_extensions=php
и просто убедитесь, что в созданной вами папке загрузок абсолютно нет шансов выполнить какой-либо код. Последнее - самое главное и единственное, что будет держать вас в безопасности от этого вопроса до скончания веков.
Пример:
/var/www/src -> execute PHP files
/var/www/uploads -> only accessible for static delivery