WordPress + nginx: запрет выполнения PHP-файлов в uploads
Аналог php_value engine off для nginx
В Apache проблема решается просто: в каталог uploads помещается .htaccess следующего содержания:
В nginx .htaccess не предусмотрен (что можно рассматривать и как достоинство, и как недостаток), поэтому там нужно применить несколько другой подход.
В описание виртуального хоста помещаем следующие строки:
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php last;
}
types {
text/plain php php3 php4 php5 phtml phps pl pm;
}
}
И заставить nginx перечитать конфигурацию:
Для nginx 0.7.32 и выше есть другой вариант:
types {
text/plain php php3 php4 php5 phtml phps pl pm;
}
try_files $uri $uri/ @wordpress;
}
Как выглядит location @wordpress, можно прочитать здесь.
Всё просто!™
Автор: Vladimir; опубликовано в: nginx, WordPress, Безопасность; метки: nginx, upload, WordPress, безопасностьФев
2009
Комментарии к статье «WordPress + nginx: запрет выполнения PHP-файлов в uploads» (2) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «WordPress + nginx: запрет выполнения PHP-файлов в uploads»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


эх гуглю ищу для lighttpd такое решение ((
спасибо за информацию.
Для lighttpd, нашёл пока что только такое решение:
server.document-root = "/home/www/file/"
dir-listing.activate = "disable"
alias.url = ( "www.file.site.ru" => "/home/www/file/" )
include "conf-available/mymtype"
fastcgi.server = ()
}
file.site.ru— поддомен, для выдачи статики, загруженной юзерами;dir-listing.activate = "disable"— отключаем листинг;include "conf-available/mymtype"— подключаем файл с mime-типами;fastcgi.server = ()— тут указываются расширения файлов, которые должны обрабатываться FastCGI, оставил пустым.Методом тыка нашёл только такое решение, если кто знает удобнее вариант, напишите в коментах, пожалуйста.
Таким образом я надеюсь, защитил себя от того, что загруженный юзером файл — upload, будет исполнятся как программа.