ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.