Tôi đang đi sâu hơn vào việc phát triển API RESTful và cho đến nay đã làm việc với một vài khung công tác khác nhau để đạt được điều này. Tất nhiên tôi đã chạy theo chính sách cùng nguồn gốc và bây giờ tôi đang tự hỏi làm thế nào các máy chủ web (chứ không phải trình duyệt web) thi hành nó. Theo những gì tôi hiểu, một số thực thi dường như xảy ra ở cuối trình duyệt (ví dụ: tôn vinh tiêu đề Access-Control-Allow-Origin nhận được từ máy chủ). Nhưng còn máy chủ thì sao?
Ví dụ: giả sử một máy chủ web đang lưu trữ ứng dụng web Javascript truy cập API, cũng được lưu trữ trên máy chủ đó. Tôi giả định rằng máy chủ sẽ thực thi chính sách cùng nguồn gốc --- để chỉ javascript được lưu trữ trên máy chủ đó mới được phép truy cập API. Điều này sẽ ngăn người khác viết một ứng dụng khách javascript cho API đó và lưu trữ nó trên một trang web khác, phải không? Vậy làm thế nào để một máy chủ web có thể ngăn chặn một máy khách độc hại cố gắng thực hiện các yêu cầu AJAX đến các điểm cuối API của nó trong khi tuyên bố đang chạy javascript có nguồn gốc từ cùng một máy chủ web đó? Cách các máy chủ phổ biến nhất (Apache, nginx) bảo vệ chống lại loại tấn công này là gì? Hoặc là sự hiểu biết của tôi về điều này bằng cách nào đó không đúng?
Hoặc chính sách nguồn gốc chéo chỉ được thi hành ở cuối máy khách?