ПРОЕКТЫ 


  АРХИВ 


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: URL с временными токенами



Hello!

On Tue, May 11, 2010 at 05:32:18AM -0400, softshape wrote:

> стоит задача спрятать прямой путь к некоторым файлам 
> (изображения из галерей с ограниченным доступом). Сам доступ 
> проверяется бакэндом, а вот отдачу картинок хочется все-таки 
> делать nginx'ом. Пришла в голову одна идея, но реализуема она ?
> 
> 1) Бакэнд генерит случайный токен (типа QLOA83H7FMP) и сохраняет 
> в memcache его самого (как ключ) и время окончания его действия 
> (как значение). Допустим, это будет 10 минут.
> 2) URL'ы изображений на защищаемой странице выглядят как 
> domain.ru/img/QLOA83H7FMP/picture.jpg.
> 3) Дальше немного магии - для файлов внутри /img/ nginx 
> извлекает из URL'а токен, ищет его в memcached и если находит и 
> его expiration-время не вышло, делает proxy-pass на секретный 
> путь, где фактически лежит изображение - 
> /img/private-path/picture.jpg. 

А зачем так сложно и дорого, не говоря уже о том что ненадёжно 
(ибо memcached может промотать запись не только из-за expire)? 
Я бы рекомендовал взять модуль secure link, читать тут:

http://sysoev.ru/nginx/docs/http/ngx_http_secure_link_module.html

Если очень нужен expiration - то можно либо зашить время в 
подписываемую часть URL и проверять дополнительно (e.g. через 
встроенный перл), либо взять что-либо из аналогов со встроенной 
поддержкой expiration'а.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.