Safari ไม่ได้ส่งคุกกี้แม้หลังจากการตั้งค่า SameSite = None; การรักษาความปลอดภัย


13

แอปพลิเคชันของเราใช้คุกกี้เพื่อจดจำการเข้าสู่ระบบของผู้ใช้ ทุกครั้งที่เราเรียก API ให้ตรวจสอบเบราว์เซอร์จะแนบคุกกี้ HTTPonly ที่ตั้งค่าเซิร์ฟเวอร์ไว้กับคำขอ API และได้รับการรับรองความถูกต้อง พฤติกรรมนี้ดูเหมือนจะถูกทำลายในซาฟารีหลังจากโมฮาวีปล่อย

ฉันอ่านเกี่ยวกับการรักษาความปลอดภัยคุกกี้ข้ามไซต์ที่ดำเนินการโดยซาฟารีและทีมเซิร์ฟเวอร์ของเราถูกเพิ่มSameSite=None;Secureขณะตั้งค่าคุกกี้ แม้หลังจากนั้นก็ยังไม่ทำงาน

Set-Cookie: my_cookie=XXXXX; path=/; secure; HttpOnly; SameSite=None

กรุณาแนะนำหรือให้ลิงค์จากผู้ที่พบวิธีการแก้ปัญหาจริง ..

คำตอบ:


15

เวอร์ชันของ Safari บน MacOS 10.14 และเบราว์เซอร์ทั้งหมดใน iOS 12 ได้รับผลกระทบจากข้อผิดพลาดนี้ซึ่งหมายความว่าSameSite=Noneจะได้รับการจัดการอย่างผิดพลาดSameSite=Strictเช่นการตั้งค่าที่เข้มงวดที่สุด

ฉันได้เผยแพร่คำแนะนำบางอย่างในสูตรคุกกี้ SameSiteที่:

  • การใช้คุกกี้สองชุดเพื่อบัญชีสำหรับเบราว์เซอร์ที่สนับสนุนSameSite=None; Secureและคุกกี้ที่ไม่รองรับ
  • การดมกลิ่นตัวแทนผู้ใช้สำหรับเบราว์เซอร์ที่เข้ากันไม่ได้และไม่ให้บริการSameSite=Noneสำหรับคำขอเหล่านั้น

1
สวัสดีโรวันขอขอบคุณสำหรับการตอบกลับและขอโทษสำหรับการตอบกลับล่าช้า ฉันขอให้ทีมฝั่งเซิร์ฟเวอร์ของฉันลองคำแนะนำจากลิงค์ web.dev ด้านบน บางทีนี่อาจเป็นคำถามที่ไม่เหมาะสมเลยที่จะถาม เนื่องจากผู้ใช้หลายล้านคนได้รับผลกระทบจากการเปลี่ยนแปลงข่าวใด ๆ หากมีแผนในอนาคตจากทีมแอปเปิ้ลที่จะแก้ไขมัน?
DieOnTime

ฉันไม่สามารถพูดกับทีม Apple / Safari ได้ ฉันคิดว่าจุดบกพร่องดั้งเดิมเป็นที่ที่ดีที่สุดสำหรับการอภิปรายเหล่านั้น
rowan_m

0

สำหรับแอปพลิเคชันที่เข้ารหัสใน Ruby (โดยเฉพาะ Rails, Sinatra หรืออะไรก็ได้บน Rack) อัญมณี RailsSameSiteCookieแก้ปัญหานี้และปัญหาที่เกี่ยวข้องค่อนข้างดี โค้ดอ่านเหมือนการแปลใกล้เคียงของรหัสเทียมในการสนทนา Chromiumโดยไม่มี regex ที่เปราะบาง

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