นโยบายต้นทางเดียวกันและคำขอดึงข้อมูล

มาริโกะ โคซากะ

ใน Codelab นี้ให้ดูวิธีการทํางานของต้นทางเดียวกันเมื่อดึงข้อมูลทรัพยากร

ตั้งค่า: ดึงข้อมูลหน้าเว็บจากต้นทางเดียวกัน

การสาธิตนี้โฮสต์ที่ https://same-origin-policy-fetch.glitch.me หน้าเว็บง่ายๆ นี้ใช้ fetch เพื่อโหลดทรัพยากรจาก https://same-origin-policy-fetch.glitch.me/fetch.html เนื่องจาก index.html และ fetch.html มีต้นทางเดียวกัน คุณจึงควรเห็น 200 ปรากฏในตัวอย่างแบบเรียลไทม์

1. ดึงหน้าเว็บจากต้นทางอื่น

ลองเปลี่ยน URL การดึงข้อมูลเป็น https://www.google.com คุณเห็นอะไรในตัวอย่างแบบสด

เบราว์เซอร์ควรบล็อกคำขอดึงข้อมูลเนื่องจากคุณขอทรัพยากรจากต้นทางอื่น ซึ่งหมายความว่าผู้โจมตีจะอ่านทรัพยากรแบบข้ามต้นทางไม่ได้แม้ว่าจะเข้าควบคุมเบราว์เซอร์ของผู้ใช้แล้วก็ตาม

2. ดึงข้อมูลทรัพยากรแบบข้ามต้นทาง

ลองเปลี่ยน URL การดึงข้อมูลเป็น https://api.thecatapi.com/v1/images/search คุณเห็นอะไรในตัวอย่างแบบสด

URL ที่จะดึงข้อมูลมีที่มาอื่น แต่คุณควรจะเห็นรหัสสถานะ 200 เหตุผล เว็บแอปพลิเคชันสมัยใหม่มักจะขอทรัพยากรแบบข้ามต้นทางเพื่อโหลดสคริปต์ของบุคคลที่สามหรือค้นหาปลายทาง API เรามีกลไกที่เรียกว่า CORS (กลไกการแชร์ทรัพยากรข้ามต้นทาง) เพื่อแจ้งให้เบราว์เซอร์ทราบว่าการโหลดทรัพยากรแบบข้ามต้นทางอนุญาตให้โหลดได้ โปรดดูที่หัวข้อแชร์ทรัพยากรข้ามต้นทางอย่างปลอดภัยสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ CORS