nginx разрешенные типы файлов

M
На сайте с 22.02.2007
Offline
161
1746

Подскажите как для определенного location указать разрешенные типы файлов (допустим jpg и gif), т.е. что бы nginx открывал только разрешенные типы файлов, а все остальные - 403.

Торрент Трекер Катушка - скачать фильмы (http://katushka.net) | SmartProgress - достижение целей (https://smartprogress.do/) Партнерская программа SmartProgress (https://smartprogress.do/affiliate)
Himiko
На сайте с 28.08.2008
Offline
560
#1

Как вариант:

location ~* ^.+\.(jpg|jpeg|gif)$ {

root /home/test;

}

location / {

return 403;

}

Будет открывать jpg,jpeg и gif из папки /home/test, а на остальное выдавать 403

Только какой в этом смысл? Зачем держать другие типы файлов в web, но их не показывать?))

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
M
На сайте с 22.02.2007
Offline
161
#2

Т.е. можно указывать location в location ?

т.е. нужно в конфиге написать так:


location ~* ^/upload/ {
location ~* ^.+\.(jpg|jpeg|gif)$ {
root /home/test;
}
location / {
return 403;
}
}

Я хочу данное правило назначить на каталог в который будут загружаться пользовательские картинки, что бы если злоумышленнику как нибудь удалось загрузить не разрешенный тип файла, он его не смог потом запустить.

Himiko
На сайте с 28.08.2008
Offline
560
#3

Не так.

Отдельно указывается первый location и он срабатывает, если файл попадает под нужную маску.

Если файл не попадает, то срабатывает второй location и выдаётся 403.

Примерно так:

location ~* ^.+\upload\.(jpg|jpeg|gif)$ {

root /home/test;

}

location /upload/ {

return 403;

}

Хотя точно не помню, как определённые маски файлов указываются для отдельной папке. Здесь могут быть ошибки, но примерно так.

Roxis
На сайте с 19.11.2006
Offline
40
#4

root /home/test;

location ~* ^/upload/.+\.(jpg|jpeg|gif)$ {

}

location /upload/ {

return 403;

}

и читать документацию, о том как работают location'ы в nginx

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий