คำถามติดแท็ก storage-access-api

2
Safari 13+ iframe บล็อกคุกกี้ CORS
Safari flat out ไม่อนุญาตให้คุณตั้งค่าคุกกี้ใน iframes ของโดเมนที่แตกต่างจากโดเมนหลักส่วนหัว CORS ฝั่งเซิร์ฟเวอร์จะถูกสาป ในการชี้แจง: ผู้ใช้อยู่ใน domainA.com iframe สำหรับ domainB.com เปิดอยู่และพยายามตรวจสอบสิทธิ์ผู้ใช้ใน domainB.com ภายใน iframe ส่วนหัว Set-Cookie จะถูกส่งคืนจากเซิร์ฟเวอร์ภายใน domainB.com iframe พร้อมด้วยส่วนหัวที่จำเป็นทั้งหมด แต่ Safari ไม่ได้ส่งสายกลับในการโทรครั้งต่อไป วิธีแก้ปัญหาแบบเก่ากำลังส่งฟอร์มจาก iframe และตั้งค่าคุกกี้ในการตอบกลับ ฉันเดาว่าพวกเขาชอบความจริงที่ว่าผู้ใช้คลิกที่สิ่งที่ต้องการส่งแบบฟอร์ม คุณจะต้องสำรวจความคิดเห็นของคุกกี้เพื่อดูว่าเมื่อใดที่การตอบกลับกลับมาเนื่องจากการส่งแบบฟอร์มไม่มีการเรียกกลับและในกรณีของคุกกี้ HttpOnly ที่คุณทำไม่ได้ แต่เดี๋ยวก่อนทำงานได้! จนกว่ามันจะไม่ จากนั้นวิธีแก้ปัญหาล่าสุดได้เปลี่ยนเส้นทางผู้ใช้ไปยังโดเมน iframe ในหน้าต่าง / แท็บใหม่การตั้งค่าคุกกี้แบบสุ่มที่นั่นและหลังจากนั้นเป็นต้นมาโดเมนย่อยนั้น "เชื่อถือได้" ภายใน iframe อีกครั้งต้องคลิกเพื่อเปิดหน้าต่าง / แท็บใหม่และยังมีข้อบ่งชี้ที่มองเห็นได้ของการเปิดแท็บใหม่ ความปลอดภัยมากมาตรฐานเช่นนี้ และในตอนนี้เช่นเดียวกับ Safari …

1
ไม่สามารถตั้งค่าคุกกี้ใน iframe โดยใช้ Storage Access API บน Safari
ฉันมี iframe บนหน้าของฉัน ในฐานะที่เป็น Safari บล็อกคุกกี้ของบุคคลที่สามฉันพยายามใช้ Storage Access API ตามที่แนะนำที่นี่ภายใต้ 'คำแนะนำสำหรับนักพัฒนา': https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more / . ฉันได้คัดลอกรหัสต่อไปนี้จากเอกสาร : <script type="text/javascript"> window.addEventListener('load', () => { document.getElementById('test-button').addEventListener('click', () => { document.hasStorageAccess().then(hasAccess => { console.log('hasAccess: ' + hasAccess); if (!hasAccess) { return document.requestStorageAccess(); } }).then(_ => { console.log('Now we have first-party storage access!'); document.cookie = …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.