Задать вопрос
@airbreaker

Как зачистить куку при проксировании с помощью nginx?

Решение в комментариях к помеченному ответу

У нас используется nginx в качестве фронтенда.
Основной наш домен - company.ru и сайт на нём работает только по https.
На страницах этого домена иногда нужно вставлять фреймы сайтов-партнеров.
Т.к. партнеры не всегда поддерживают SSL, чтобы обойти проблемы с несоответствием протоколов, мы проксируем сайты партнеров через наш nginx.

Таким образом, сайт партнера получает адрес https://partner.company.ru
Авторизационная кука наша выдается для адреса .company.ru, т.е. партнёры могут получить её значение на своем сервере.

Как убить эту куку при проксировании?
Знаю, что можно сделать
proxy_set_header Cookie "";
Но этот вариант очистит куки полностью, что ставит под сомнение работоспособность.

Нужно обнулить куку с конкретным названием.
  • Вопрос задан
  • 793 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
BuriK666
@BuriK666 Куратор тега Nginx
Компьютерный псих
Устанавливайте свою куку на company.ru, а не на .company.ru и тогда браузер не будет передавать куку на *.company.ru

А надежнее всего сделать для этих случаев отдельный домен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Может этот модуль поможет? https://github.com/openresty/headers-more-nginx-module
Ответ написан
Комментировать
@KaymeKaydex
Можете так же регуляркой вырезать
map $http_cookie $my_cookie_for_some_location {
    "~yourregexp" $1$3;
     default $http_cookie; 
}

...

location = / {
    proxy_set_header Cookie $my_cookie_for_some_location;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы