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
|