Hello!
On Mon, Jun 19, 2017 at 05:17:18PM +0200, Alexander Moskalenko wrote:
> 2017-06-19 17:00 GMT+02:00 Evgeniy Berdnikov <bgx@protva.ru>:
>
> > On Mon, Jun 19, 2017 at 04:26:59PM +0200, Alexander Moskalenko wrote:
> > > Кейс такой:
> > >
> > > Есть 2 CDN, которые передают разные заголовки.
> > > Есть список их IP, хочется получать Real_IP от обоих без танцев
> >
> > Что значит "обоих"? Вложенные CDN, что ли? Как это? Непонятно.
> >
>
> 2 _разных_ CDN, часть сайтов висит на одном, часть на другом
> Конфигурация realip модуля вынесена в блок http
> CDN_1 шлет IP клиента в HTTP_HEADER_1
> CDN_2 шлет IP клиента в HTTP_HEADER_2
>
> хочется прописать ОБА заголовка в realip_header
Это приведёт к тому, что любой клиент сможет подделать IP, прислав
запрос через CDN_1 с заголовком HTTP_HEADER_2 (или наоборот -
через CDN_2 с заголовком HTTP_HEADER_1). Потому что CDN'ы
наверняка не фильтрует заголовки, которые сами не выставляют.
Чтобы работало хоть сколько-нибудь безопасно - нужно, фактически,
делать отдельные конфигурации, с каких адресов принимать какой
заголовок. Такого realip-модуль сейчас не умеет, и в обозримой
перспективе уметь, скорее всего, не будет.
Проще всего для подобных задач явно делать разные конфигурации, с
разными блоками server{} для разных CDN.
--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru