Назад | Перейти на главную страницу

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

Я хочу использовать 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