Welcome! Log In Create A New Profile

Advanced

Re: URL с временными токенами

Maxim Dounin
May 13, 2010 10:42AM
Hello!

On Thu, May 13, 2010 at 05:39:19PM +0400, Igor Sysoev wrote:

> On Thu, May 13, 2010 at 05:20:03PM +0400, Михаил Монашёв wrote:
>
> > Здравствуйте, Максим.
> >
> > >> > s> и особенно NginxHttpSecureDownload выглядят многообещающе.
> > >> >
> > >> > Модуль Игоря будет работать при обновлении nginx-а. А вот модуль
> > >> > сторонних разработчиков я б не использовал, хотя он и есть именно то,
> > >> > что тебе нужно...
> > >>
> > >> Я сейчас планирую добавить в ngx_http_secure_link_module функциональность
> > >> с временем и finger print'ом. Что-то вроде
> > >>
> > >> /prefix/MD5/TIME/FINGERPRINT/url
> > >> /prefix/MD5/TIME/url
> > >> /prefix/MD5/url
> > >>
> > >> Для кодирования MD5, TIME и FINGERPRINT будет использоваться вариант
> > >> base64 для URL (где "+" и "/" заменены на "-" и "_").
> > >>
> > >> Директивы:
> > >>
> > >> secure_link_base64 [on|off|4|8|12];
> > >>
> > >> off - совместимость с текущим ngx_http_secure_link_module.
> > >> 4|8|12 - кодировать только часть хэша MD5.
> > >>
> > >> secure_link_expire [on|off];
> > >>
> > >> secure_link_fingerprint [off|строка];
> > >> secure_link_fingerprint
> > >> "$http_user_agent$remote_addr$http_accept";
> > >>
> > >> FINGERPRINT считает MD5 от указанной строки и кодирует его в base64.
> > >>
> > >> Ещё думаю над вариантом, когда MD5, TIME и FINGERPRINT передаются только
> > >> в куке.
> >
> > MD> Ещё pls подумай над вариантом передавать это всё в аргументах.
> > MD> Куки подходят не всегда, а настройка для аргументов(та) будет
> > MD> существенно проще и понятнее (не говоря уже о всякой последующей
> > MD> стастике и т.п.).
> >
> > Угу. Источник для MD5, TIME и FINGERPRINT было бы удобно задавать.
> > Например также, как сейчас задаётся secure_link_fingerprint
>
> Тогда возможен такой вариант:
>
> Формат ключа - MD5:TIME:FINGERPRINT
>
> MD5 считается так:
>
> md5(time . crc32(fingerprint) . protected URI)
>
> Время и crc32 в littel endian.
> Время 4 байта: time() - число секунд на 1.01.2010 от epoch

Я бы всё-таки рекомендовал время строкой в секундах с начала
эпохи.

И может быть md5 вообще считать не от чего-то конкретного, а от
произвольной строки формируемой из переменных (всё равно
"protected URI" задавать, см. ниже).

> В URLе - /acbdefgd:acbdefg:abcdefg/file.zip
>
> location ~ ^/(?<secure>[^/]+)(?<file>/.+)$ {
> secure_link $secure;
> secure_link_base64 8;
> secure_link_expire on;
> secure_link_fingerprint "$http_user_agent$remote_addr$http_accept";
> alias /path/to/$file;
> }

Тут надо ещё задавать что подписываем. В текущем варианте
подписывается $file, но в приведённом конфиге secure link'у никак
об этом не сообщается.

> В аргументах - /download/file.zip?secure=acbdefgd:acbdefg:abcdefg
>
> location /download/ {
> secure_link $arg_secure;
> secure_link_base64 8;
> secure_link_expire on;
> secure_link_fingerprint "$http_user_agent$remote_addr$http_accept";
> root /path/to/files;
> }
>
> В куке - /download/file.zip, "Cookie: secure=acbdefgd:acbdefg:abcdefg"
>
> location /download/ {
> secure_link $cookie_secure;
> secure_link_base64 8;
> secure_link_expire on;
> secure_link_fingerprint "$http_user_agent$remote_addr$http_accept";
> root /path/to/files;
> }

В остальном вроде бы выглядит логично.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

URL с временными токенами

softshape May 11, 2010 05:32AM

Re: URL с временными токенами

Sergey Shepelev May 11, 2010 05:44AM

Re: URL с временными токенами

Maxim Dounin May 11, 2010 06:44AM

Re: URL с временными токенами

Ilya Nazarov May 11, 2010 06:56AM

Re: URL с временными токенами

softshape May 11, 2010 11:55AM

Re: URL с временными токенами

Sergey Shepelev May 11, 2010 12:12PM

Re[2]: URL с временными токенами

Михаил Монашёв May 11, 2010 12:28PM

Re: URL с временными токенами

Igor Sysoev May 13, 2010 08:00AM

Re[2]: URL с временными токенами

Михаил Монашёв May 13, 2010 08:30AM

Re[3]: URL с временными токенами

andy karimov May 13, 2010 08:48AM

Re: URL с временными токенами

Igor Sysoev May 13, 2010 08:50AM

Re: URL с временными токенами

Maxim Dounin May 13, 2010 09:08AM

Re[2]: URL с временными токенами

Михаил Монашёв May 13, 2010 09:22AM

Re: URL с временными токенами

Igor Sysoev May 13, 2010 09:40AM

Re[2]: URL с временными токенами

Михаил Монашёв May 13, 2010 10:06AM

Re: URL с временными токенами

Igor Sysoev May 13, 2010 10:12AM

Re: URL с временными токенами

Dmitry Banschikov May 13, 2010 10:24AM

Re: URL с временными токенами

Maxim Dounin May 13, 2010 10:44AM

Re: URL с временными токенами

Igor Sysoev May 13, 2010 10:50AM

Re: URL с временными токенами

Maxim Dounin May 13, 2010 11:30AM

Re: URL с временными токенами

Igor Sysoev May 14, 2010 09:00AM

Re: URL с временными токенами

Maxim Dounin May 13, 2010 10:42AM

Re: URL с временными токенами

Igor Sysoev May 14, 2010 09:06AM

Re: URL с временными токенами

Oleksandr V. Typlyns'kyi May 13, 2010 10:12AM

Re: URL с временными токенами

Михаил Монашёв May 11, 2010 06:44AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 194
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