Di proxy terbalik nginx, bagaimana cara mengatur bendera aman untuk cookie?

12

Saya menggunakan nginx sebagai proxy terbalik untuk melayani situs https-only. Jadi saya ingin cookie untuk situs ini ditandai sebagai aman. Tetapi server backend adalah http satu sehingga tidak akan mengatur bendera aman untuk cookie-nya. Bagaimana saya bisa memodifikasi header Set-Cookie sebagai tanggapan untuk menambahkan bendera yang aman?

Tianyi Cui
sumber
Ditanyakan dan dijawab pada SO. Lihat SO untuk contoh nginx untuk Tomcat7: stackoverflow.com/questions/19916906/…
Joseph Lust
1
Penimpaan seperti itu saat ini tidak memungkinkan, tetapi ada masalah / tiket tentang proxy_cookie_secure: trac.nginx.org/nginx/ticket/368 Namun itu belum diterapkan (dan masalahnya sudah tua).
rugk
Modul pihak ketiga ini dapat membantu Anda.
Airis

Jawaban:

4

Anda mungkin bisa mendapatkan proxy nginx Anda memodifikasi cookie yang dibuat oleh backend dan mengatur bendera aman - untuk inspirasi lihat Bagaimana menulis ulang bagian domain Set-Cookie di proxy reverse nginx? .

Namun saya membayangkan bahwa mendapatkan apa pun yang membuat cookie di backend untuk mengatur bendera aman akan menjadi solusi yang lebih baik. Bagaimana Anda melakukannya adalah cerita lain (atau pertanyaan :).

Jon Rhoades
sumber
4
Ini mungkin membantu Anda untuk mengatur X-Forwarded-Prototajuk dan memastikan itu ditafsirkan oleh aplikasi Anda. Ini adalah teknik umum dan juga memungkinkan aplikasi campuran http / https untuk bereaksi dengan benar berdasarkan protokol.
Lukas
4

Saya menggunakan kode konfigurasi nginx berikut:

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

Alih-alih regex untuk membuat ini dinamis Anda tentu saja dapat menggunakan FQDN.

r_3
sumber
Apakah ini hanya tanggapan atau permintaan dan tanggapan. Ketika klien mengirim permintaan dengan set bendera aman tidak menghapusnya sehingga server web tidak mengeluh?
Tigran
Klien tidak mengirim kembali bendera aman di Cookieheader.
r_3