Welcome! Log In Create A New Profile

Advanced

Re: Хочется сделать статическую раздачу файлов, но с произвольными именами

November 14, 2009 02:32AM
On Sat, Nov 14, 2009 at 01:38:15AM +0300, Vitaly Puzrin wrote:

> Игорь, спасибо большое.
>
> А есть какие-то заморочки с безопасностью, на случай если люди будут
> ручками имя отдаваемого файла менять? Ну например зальют файл как
> картинку, а потом дернут как php
>
> Пока только надумал, что можно жестко ограничить расширения файлов в
> фильтре. Что-нибудь еще надо предусмотреть?

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

  location ^~ /files/ {

или же поставить этот

  location ~ ^(/files/.+)/([^/]+)$ {

самым первым.

> 13 ноября 2009 г. 23:56 пользователь Igor Sysoev <is@rambler-co.ru> написал:
> > On Fri, Nov 13, 2009 at 11:37:54PM +0300, Igor Sysoev wrote:
> >
> >> On Fri, Nov 13, 2009 at 11:15:55PM +0300, Vitaly Puzrin wrote:
> >>
> >> > Есть форум, куда юзеры льют картинки и прочую лабуду. Естественно,
> >> > каждый называет файлы "как умеет". Сейчас "настоящие" имена  хранятся
> >> > в базе, а на диске имена содержат только циферки. Все раздается
> >> > скриптом -  генерятся хедеры с правильным именем, и делается
> >> > accel-redirect на бинарник.
> >> >
> >> > Хочется вызов скрипта исключить совсем. Но хранить произвольные имена
> >> > в файловой системе - стремно. Могут и на японском что-нибудь запихать,
> >> > и файлы с одинаковыми именами.
> >> >
> >> > Существует ли какое-то красивое решение? Пока думал, что можно на
> >> > вебстраничках нагенерить хитрых ссылок, где не только путь к
> >> > бинарнику, но и желаемое имя, под которым надо отдать. А дальше
> >> > встроенным перлом прямо в nginx заголовки составлять и доклеивать
> >> > блоб. Не уверен, что это самый разумный метод. Может кто подскажет
> >> > получше?
> >>
> >> Для ссылок вида "/files/1/2/345678?name=хитрое%20японское%20имя" можно
> >> без перла:
> >>
> >>   location /files/ {
> >>       root         /path/to/files;
> >>       add_header   Content-Disposition 'attachment; filename="$arg_name"';
> >>   }
> >
> > Или так:
> >
> >  /files/1/2/345678/хитрое%20японское%20имя
> >
> >   location ~ ^(/files/.+)/([^/]+)$ {
> >       alias        /path/to/files$1;
> >       add_header   Content-Disposition 'attachment; filename="$2"';
> >   }
> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >

--
Игорь Сысоев
http://sysoev.ru
Subject Author Posted

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

Vitaly Puzrin November 13, 2009 03:24PM

Re: Хочется сделать статическую раздачу файлов, но с произвольными именами

Igor Sysoev November 13, 2009 03:52PM

Re: Хочется сделать статическую раздачу файлов, но с произвольными именами

Igor Sysoev November 13, 2009 04:10PM

Re: Хочется сделать статическую раздачу файлов, но с произвольными именами

Vitaly Puzrin November 13, 2009 05:46PM

Re: Хочется сделать статическую раздачу файлов, но с произвольными именами

Boris Dolgov November 13, 2009 06:16PM

Re: Хочется сделать статическую раздачу файлов,но с произвольными именами

Denys Fedoryschenko November 13, 2009 06:56PM

Re: Хочется сделать статическую раздачу файлов, но с произвольными именами

Igor Sysoev November 14, 2009 02:32AM

Re: Хочется сделать статическую раздачу файлов, но с произвольными именами

TDz November 13, 2009 03:54PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 202
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready