ฉันดำน้ำลึกลงไปในการพัฒนา RESTful API และทำงานร่วมกับกรอบที่แตกต่างกันสองสามอย่างเพื่อบรรลุเป้าหมายนี้ แน่นอนว่าฉันใช้นโยบายที่มาจากเดิมและตอนนี้ฉันสงสัยว่าเว็บเซิร์ฟเวอร์ (แทนที่จะเป็นเว็บเบราว์เซอร์) บังคับใช้อย่างไร จากสิ่งที่ฉันเข้าใจการบังคับใช้บางอย่างดูเหมือนจะเกิดขึ้นที่ส่วนท้ายของเบราว์เซอร์ (เช่นการเคารพส่วนหัว Access-Control-Allow-Origin - ที่ได้รับจากเซิร์ฟเวอร์) แต่แล้วเซิร์ฟเวอร์ล่ะ
ตัวอย่างเช่นสมมติว่าเว็บเซิร์ฟเวอร์โฮสต์ Javascript เว็บแอปที่เข้าถึง API และโฮสต์บนเซิร์ฟเวอร์นั้น ฉันคิดว่าเซิร์ฟเวอร์จะบังคับใช้นโยบายกำเนิดเดียวกัน --- เพื่อให้เฉพาะจาวาสคริปต์ที่โฮสต์บนเซิร์ฟเวอร์นั้นจะได้รับอนุญาตให้เข้าถึง API นี่จะป้องกันไม่ให้คนอื่นเขียนไคลเอนต์จาวาสคริปต์สำหรับ API นั้นและโฮสต์ไว้ในไซต์อื่นใช่ไหม ดังนั้นเว็บเซิร์ฟเวอร์จะสามารถหยุดไคลเอ็นต์ที่เป็นอันตรายที่พยายามส่งคำขอ AJAX ไปยังจุดสิ้นสุด API ของตนในขณะที่อ้างว่าใช้จาวาสคริปต์ที่มาจากเว็บเซิร์ฟเวอร์เดียวกันได้อย่างไร เซิร์ฟเวอร์ยอดนิยม (Apache, nginx) ป้องกันการโจมตีแบบนี้ได้อย่างไร? หรือความเข้าใจของฉันในเรื่องนี้อย่างใดปิดเครื่องหมาย?
หรือมีการบังคับใช้นโยบายข้ามแหล่งที่มาเฉพาะที่ส่วนท้ายของไคลเอ็นต์หรือไม่