ในพร็อกซีย้อนกลับ nginx จะตั้งค่าการตั้งค่าสถานะที่ปลอดภัยสำหรับคุกกี้ได้อย่างไร


12

ฉันใช้ nginx เป็น reverse proxy เพื่อให้บริการเว็บไซต์ https เท่านั้น ดังนั้นฉันต้องการคุกกี้สำหรับไซต์นี้ถูกตั้งค่าสถานะว่าปลอดภัย แต่เซิร์ฟเวอร์ส่วนหลังเป็น http หนึ่งดังนั้นมันจะไม่ตั้งค่าสถานะความปลอดภัยเป็นคุกกี้ ฉันจะแก้ไขส่วนหัว Set-Cookie เพื่อตอบสนองเพื่อเพิ่มการตั้งค่าสถานะที่ปลอดภัยได้อย่างไร


ถามและตอบบน SO ดู SO สำหรับตัวอย่าง nginx สำหรับ Tomcat7: stackoverflow.com/questions/19916906/…
Joseph Lust

1
การลบล้างดังกล่าวไม่สามารถทำได้ในขณะนี้ แต่มีปัญหา / ตั๋วเกี่ยวกับproxy_cookie_secure: trac.nginx.org/nginx/ticket/368 อย่างไรก็ตามยังไม่ได้ใช้งาน (และปัญหาเก่า)
2559

โมดูลบุคคลที่สามนี้สามารถช่วยคุณได้
Airis

คำตอบ:


4

คุณอาจได้รับพร็อกซี nginx ของคุณแก้ไขคุกกี้ที่สร้างโดยแบ็กเอนด์และตั้งค่าสถานะความปลอดภัย - สำหรับแรงบันดาลใจดูวิธีการเขียนส่วนโดเมนของ Set-Cookie ในพร็อกซีย้อนกลับ nginx ได้อย่างไร .

อย่างไรก็ตามฉันคิดว่าการได้รับทุกอย่างกำลังสร้างคุกกี้บนแบ็กเอนด์เพื่อตั้งค่าสถานะความปลอดภัยจะเป็นทางออกที่ดี คุณทำยังไงก็เป็นอีกเรื่อง (หรือคำถาม :)


4
อาจช่วยให้คุณตั้งค่าX-Forwarded-Protoส่วนหัวและตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณตีความได้ นี่เป็นเทคนิคทั่วไปและยังช่วยให้แอปพลิเคชัน http / https ผสมตอบสนองอย่างถูกต้องตามโปรโตคอล
Lukas

4

ฉันใช้รหัสการกำหนดค่า nginx ต่อไปนี้:

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

แทนที่จะใช้ regex เพื่อสร้าง dynamical นี้คุณสามารถใช้ FQDN ได้แน่นอน


นี่เป็นเพียงการตอบสนองหรือทั้งคำขอและการตอบกลับ เมื่อไคลเอนต์ส่งการร้องขอด้วยชุดการตั้งค่าสถานะที่ปลอดภัยไม่ nginx ดึงมันดังนั้นเว็บเซิร์ฟเวอร์ไม่บ่น
Tigran

ลูกค้าไม่ส่งการตั้งค่าสถานะความปลอดภัยกลับในCookieส่วนหัว
r_3

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.