Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: secure link в разных location
Hello!
On Wed, Oct 02, 2013 at 05:20:32AM -0400, Unreal wrote:
> Здравствуйте.
>
> Столкнулся с проблемой - необходимо использовать secure_link в двух разных
> location с разными приципами формаирования secure_link_md5 в пределах одного
> server. Вроде все просто:
[...]
> Но при этом ничего не работает. Собрал с debug, стал смотреть - первый
> локейшен отрабатывается четко как надо, переходим во второй, все выполняем
> кроме строк:
> secure_link $key,$expire;
> secure_link_md5 $secretPharse$expire$ip$uri;
>
> Их nginx пропускает, тоесть повтороно он не обсчитывает md5 хеш... При этом
> в документации указано, что secure_link может применяться в http, server,
> location .
Применять secure_link можно где угодно, но значение переменной
$secure_link вычисляется только один раз за запрос. Единожды
вычисленное значение - кешируется. Т.е. посчитать secure_link
одним способом, а если не получилось, то другим - нельзя.
> Что делать?
Заранее разделить location'ы, где secure link'и нужно вычислять по
разному, и уже после этого проверять $secure_link. Правильнее
всего как-то так:
location /old/ {
secure_link ...
secure_link_md5 ...
if ($secure_link != 1) { return 403; }
...
}
location /new/ {
secure_link ...
secure_link_md5 ...
if ($secure_link != 1) { return 403; }
...
}
--
Maxim Dounin
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|