Nginx Додати безпечний прапор до файлів cookie з проксі-сервера


12

Mozilla щойно випустила новий інструмент для перевірки конфігурації вашого веб-сайту. observatory.mozilla.org

Але скан скаржиться на файли cookie (-10 балів): печиво сеансу встановлено без безпечного прапора ...

На жаль, служба, що працює за моїм nginx, може встановлювати захисний заголовок лише у тому випадку, коли SSL закінчується там безпосередньо, а не тоді, коли SSL закінчується на nginx. Таким чином прапор "Безпечний" не встановлюється на файлах cookie.

Чи можливо додати "cookie" прапор до файлів cookie якось за допомогою nginx? Можливо, змінити місцеположення / шлях, можливо, можливо.

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path

Відповіді:


11

Я знаю два способи сортування цього, жоден із них не є чудовим. Перший - просто зловживати proxy_cookie_path так:

proxy_cookie_path / "/; secure";

Друге - використовувати директиву more_set_headers з модуля Headers More на зразок цього:

more_set_headers 'Set-Cookie: $sent_http_set_cookie; secure';

І те і інше можуть створити проблеми, оскільки вони сліпо додають елементи. Наприклад, якщо вище за течією встановити захищений прапор, ви закінчите надсилати клієнту такий дублікат:

Set-Cookie: foo=bar; secure; secure;

а у другому випадку, якщо додаток, що не працює, не встановить файл cookie, nginx надішле це браузеру:

Set-Cookie; secure;

Це, звичайно, подвійний товар.

Я думаю, що цю проблему потрібно вирішити, оскільки про це запитували багато людей. На мою думку, потрібна директива приблизно така:

proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;

але на жаль, цього наразі не існує :(


Шлях печива справді виглядає як приємний спосіб вирішення. Я думаю, що спробую це спершу. Спасибі за вашу допомогу.
ST-DDT

1
Я порушив запит на функції на форумі; сподіваємось, автор зацікавлений у цьому.
Франклін Ю.

3

Спробуйте використовувати nginx_cookie_flag_module . Це вирішить вашу проблему.

Відмова: Я є автором модуля.


3
Не могли б ви детальніше розповісти про налаштування та налаштування модуля. Здається, README передбачає, що вона потребує відновлення nginx, що може бути неприйнятним у багатьох налаштуваннях.
Томас Найман

Так, використання цього модуля вимагає відновлення Nginx. Інакше ви не можете використовувати цю директиву. Це стосується всіх сторонніх модулів. У багатьох випадках відновлення nginx не займає багато часу.
Еріс

@ThomasNyman Перебудову можна уникнути, заплативши за NGINX Plus, як пояснено в інструкції від NGINX .
Франклін Ю

1
@Airis Отже, ви автор? Чудова робота, товариш, але краще додати відмову.
Франклін Ю

@Aris ми намагалися використовувати модуль з 1.17.1 версією ngnix: alpine, але ми стикаємося з наступними помилками, коли ми намагаємося завантажити модулі в nginx.conf. 'module' /usr/local/nginx/modules/ngx_http_cookie_flag_filter_module.so "не є бінарним сумісним"
Lokesh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.