Welcome! Log In Create A New Profile

Advanced

Re: proxy cache key и fastcgi cache key

January 10, 2014 10:07PM
> Коллизии возможны только в одном случае: программист не проверяет
> данные,
> получаемые от клиента, и такому программисту никаким костылями не
> поможешь.

Проверять на бекенде значения Host не рационально, если в конфигурации server указан только один домен.
Если следовать вашей логике тогда, бекенд должен проверять не только Host, но и IP коннекта чтобы убедится что это коннект от Nginx, так тоже никто не делает потому что это не рационально, более эффективный способ настроить фаирвол который закрывает извне доступ к портам бекенда.
Тоже самое с заголовком Host, в том же Apache директива UseCanonicalName On, во многих дистрибутивах установлена по умолчанию или администраторы её устанавливают самостоятельно.

Но если вы по прежнему считаете что проверка Host на бекенде, решает все проблемы вы ошибаетесь, приведу пример.
Есть проект, в котором сайт имеет множество подоменов, каждый подомен настроен в отдельном server{}.
Бекенд при получении запросов проверяет HTTP_HOST и в соответствии с его значениям, выполняет разную логику и генерит разные страницы.
Каждый подомен настроен в отдельном server{} индивидуально и оптимизирован под функционал каждого подомена.

Пример:

server
{
server_name example.com

fastcgi_cache use_cache;
….
}

server
{
server_name auth.example.com

}

Как видите в первом вирт хосте есть Nginx кеширования, во втором его нет.

Теперь делаем запрос

GET http://auth.example.com/ HTTP/1.1
Host: example.com

Nginx, определяет вирт хост как auth.example.com в котором нет кешировании и передает бекенду HTTP_HOST = example.com, бекенд проверяет HTTP_HOST и генерит страницу для example.com.
Это позволяет устроить Ддос атаку на домен example.com потому что Nginx будет пропускать все запросы к бекенду без кеширования, бекенд будет генерить страницу для example.com, тратить свои ресурсы в расчете на то что страница попадет в кеш Nginx, но этого не случится потому что Nginx выполнил директивы из одного вирт хоста, но в бекенд передал другое значения Host и проверка этого значения прошла на бекенде успешно что и требовалось хакерам для Ддос атаки.

> > Для каждого вирт хоста прописан proxy_cache_key
> $proxy_host$request_uri.
> >
> > Теперь делаем запрос
> > GET http://apple-shop.com/ HTTP/1.1
> > Host: samsung-shop.com
> >
> > В результате чего, ответ бекенда сохранится в кеше Nginx с ключом "
> > samsung-shop.com/" но содержать внутри будет страницу
> apple-shop.com/.
> > На все последующие запросы samsung-shop.com будет отдаваться
> страница с
> > товарами Apple, так как внутри кеш файла с ключом
> "samsung-shop.com/" будет
> > страница хоста apple-shop.com.
>
> Не будет, если только в обоих случаях не указано:

Т.е вы утверждаете, что значения переменой $proxy_host в данном запросе будет = apple-shop.com, а не samsung-shop.com?
Сейчас проверить самостоятельно не могу, потому что везде у нас FastCGI.
Но если $proxy_host != $http_host, тогда я не вижу причин не сделать тоже самое для FastCGI.


> 1. В каком месте документации написано, что надо настраивать так, как
> было
> указано вами выше?

Вот ссылка на документацию.
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_key
По умолчанию значение директивы близко к строке
proxy_cache_key $scheme$proxy_host$uri$is_args$args;

> 2. Как вообще всё вышеописанное вами относится к обсуждаемой в данной
> подветке теме про http://habrahabr.ru/post/166855/ (которая вообще
> не относится к кэшу и директивам
> proxy_cache_key/fastcgi_cache_key,
> но уж так вышло, что была затронута)?

В данном примере, я пытался привести ситуацию где используется proxy_cache_key (тема нашего треда) и так же запрос с absoluteURI чтобы показать проблемы описаны в http://habrahabr.ru/post/166855/

В итого хочется сказать, что отсутствия в Nginx аналога UseCanonicalName On, который есть в Apache, на руку только злоумышленникам, которые будут делать запросы с absoluteURI и заголовком Host одновременно, в расчете на то что Nginx выполнит директивы из одного вирт хоста, а бекенд будет выполнять данный запрос в соответсвии с заголовком Host, который Nginx проигнорировал в этом и заключается коллизия.
Subject Author Posted

proxy_cache_key и fastcgi_cache_key

Gena Makhomed January 07, 2014 06:16AM

Re: proxy_cache_key и fastcgi_cache_key

Maxim Dounin January 09, 2014 07:12AM

Re: proxy_cache_key и fastcgi_cache_key

Gena Makhomed January 09, 2014 08:58AM

Re: proxy_cache_key и fastcgi_cache_key

Maxim Dounin January 09, 2014 09:34AM

Re: proxy_cache_key и fastcgi_cache_key

Gena Makhomed January 10, 2014 04:56AM

Re: proxy_cache_key и fastcgi_cache_key

Maxim Dounin January 10, 2014 10:44AM

Re: proxy_cache_key и fastcgi_cache_key

Валентин Бартенев January 10, 2014 12:58PM

Re: proxy_cache_key и fastcgi_cache_key

Gena Makhomed January 10, 2014 03:34PM

Re: proxy_cache_key и fastcgi_cache_key

Валентин Бартенев January 10, 2014 03:50PM

Re: proxy_cache_key и fastcgi_cache_key

Gena Makhomed January 10, 2014 04:12PM

Re: proxy_cache_key и fastcgi_cache_key

Валентин Бартенев January 10, 2014 06:18PM

Re: proxy_cache_key и fastcgi_cache_key

Maxim Dounin January 13, 2014 07:24AM

Re: proxy_cache_key и fastcgi_cache_key

S.A.N January 09, 2014 02:03PM

Re: proxy cache key и fastcgi cache key

Gena Makhomed January 09, 2014 05:58PM

Re: proxy cache key и fastcgi cache key

Валентин Бартенев January 10, 2014 05:26AM

Re: proxy cache key и fastcgi cache key

Gena Makhomed January 10, 2014 06:46AM

Re: proxy cache key и fastcgi cache key

Gena Makhomed January 10, 2014 07:08AM

Re: proxy cache key и fastcgi cache key

Валентин Бартенев January 10, 2014 08:10AM

Re: proxy cache key и fastcgi cache key

Gena Makhomed January 10, 2014 03:52PM

Re: proxy cache key и fastcgi cache key

Валентин Бартенев January 10, 2014 05:18PM

Re: proxy cache key и fastcgi cache key

Gena Makhomed January 10, 2014 06:08PM

Re: proxy cache key и fastcgi cache key

Валентин Бартенев January 10, 2014 06:52PM

Re: proxy cache key и fastcgi cache key

Валентин Бартенев January 10, 2014 07:18PM

Re: proxy cache key и fastcgi cache key

Gena Makhomed January 11, 2014 06:20AM

Re: proxy cache key и fastcgi cache key

Gena Makhomed January 11, 2014 05:36AM

Re: proxy cache key и fastcgi cache key

S.A.N January 10, 2014 07:40PM

Re: proxy cache key и fastcgi cache key

Валентин Бартенев January 10, 2014 08:08PM

Re: proxy cache key и fastcgi cache key

S.A.N January 10, 2014 10:07PM

Re: proxy cache key и fastcgi cache key

S.A.N January 10, 2014 10:30PM

Re: proxy cache key и fastcgi cache key

S.A.N January 11, 2014 03:12AM

Re: proxy cache key и fastcgi cache key

S.A.N January 13, 2014 12:31AM

Об одной малоизвестной уязвимости в веб сайтах

Gena Makhomed June 11, 2014 06:32AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Валентин Бартенев June 11, 2014 06:44AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Gena Makhomed June 11, 2014 07:26AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Maxim Dounin June 11, 2014 03:54PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Gena Makhomed June 12, 2014 08:42AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Maxim Dounin June 14, 2014 02:16PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Gena Makhomed June 15, 2014 04:10PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Maxim Dounin June 16, 2014 08:02AM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 16, 2014 11:19AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Maxim Dounin June 16, 2014 11:38AM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 16, 2014 03:36PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Maxim Dounin June 17, 2014 03:02AM

Re: Об одной малоизвестно й уязвимости в веб сайтах

Gena Makhomed June 17, 2014 06:36AM

Re: Об одной малоизвестно й уязвимости в веб сайтах

S.A.N June 17, 2014 04:11PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Gena Makhomed June 16, 2014 04:22PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Maxim Dounin June 17, 2014 02:32AM

Re: Об одной малоизвестно й уязвимости в веб сайтах

Gena Makhomed June 17, 2014 06:32AM

Re: Об одной малоизвестн ой уязвимости в веб сайтах

Maxim Dounin June 17, 2014 07:04AM

Re: Об одной малоизвест ной уязвимости в веб сайтах

Валентин Бартенев June 17, 2014 07:16AM

Re: Об одной малоизвест ной уязвимости в веб сайтах

Igor Sysoev June 18, 2014 10:28AM

Re: Об одной малоизвестн ой уязвимости в веб сайтах

Валентин Бартенев June 17, 2014 07:06AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Dmitry June 11, 2014 03:56PM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 12, 2014 10:47AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Илья Шипицин June 17, 2014 02:42AM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 17, 2014 10:46AM

Re: Об одной малоизвестной уязвимости в веб сайтах

Илья Шипицин June 17, 2014 01:02PM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 17, 2014 03:31PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Илья Шипицин June 17, 2014 04:12PM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 17, 2014 04:50PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Илья Шипицин June 17, 2014 04:16PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Валентин Бартенев June 17, 2014 01:30PM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 17, 2014 06:05PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Валентин Бартенев June 18, 2014 03:56AM

Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N June 18, 2014 12:15PM

Re: Об одной малоизвестной уязвимости в веб сайтах

Валентин Бартенев June 18, 2014 04:06AM

Re: proxy cache key и fastcgi cache key

Валентин Бартенев January 10, 2014 07:54AM

nginx и RFC

Gena Makhomed January 13, 2014 07:44PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

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