Як встановити захищений прапор для файлів cookie у nginx зворотньому проксі.


12

Я використовую nginx як зворотний проксі-сервер для обслуговування https-сайту. Тому я хочу, щоб файли cookie для цього сайту позначені як безпечні. Але сервер резервного сервера - це http, тому він не встановлюватиме захищений прапор своїм cookie-файлам. Як я можу змінити заголовок Set-Cookie у відповідь, щоб додати захищений прапор?


На запитання та відповідь на SO. Див SO, наприклад Nginx для Tomcat7: stackoverflow.com/questions/19916906 / ...
Джозеф Lust

1
Таке переопрацювання наразі неможливо, але існує проблема / квиток про proxy_cookie_secure: trac.nginx.org/nginx/ticket/368 Однак вона ще не реалізована (і проблема стара).
рюк

Цей сторонній модуль може вам допомогти.
Еріс

Відповіді:


4

Можливо, ви зможете змусити ваш проксі-сервер nginx змінити файли cookie, створені бекендом, і встановити захищений прапор - для натхнення див. Як переписати доменну частину Set-Cookie у зворотній проксі-сервер nginx? .

Однак я б міг уявити, що отримання кращого способу створення файлу cookie на бекенді для встановлення безпечного прапора стане кращим рішенням. Як ви це робите - це вже інша історія (або питання :).


4
Це може допомогти вам встановити X-Forwarded-Protoзаголовок і переконатися, що воно інтерпретується вашою програмою. Це звичайна методика, а також дозволяє змішаним http / https програмам реагувати належним чином на основі протоколу.
Лукас

4

Я використовую такий конфігураційний код nginx:

# make cookie secure (case sensitive)
proxy_cookie_domain ~(?P<secure_domain>([-0-9a-z]+\.)?[-0-9a-z]+\.[a-z]+)$ "$secure_domain; secure";

Замість регулярного вираження, щоб зробити це динамічним, ви, звичайно, можете використовувати FQDN.


Це лише на відповідь або прохання і відповідь. Коли клієнт надсилає запит із набором захищеного прапора, чи nginx знімає його, щоб веб-сервер не скаржився?
Тигран

Клієнти не надсилають назад захищений прапор у Cookieзаголовку.
r_3

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.