Mi sto immergendo sempre più nello sviluppo di API RESTful e finora ho lavorato con alcuni framework diversi per raggiungere questo obiettivo. Naturalmente mi sono imbattuto nella politica della stessa origine, e ora mi chiedo in che modo i server web (anziché i browser Web) la applicano. Da quanto ho capito, sembra che un po 'di forzatura si verifichi alla fine del browser (ad esempio, onorando un'intestazione Access-Control-Allow-Origin ricevuta da un server). Ma che dire del server?
Ad esempio, supponiamo che un server Web stia ospitando un'app Web Javascript che accede a un'API, anch'essa ospitata su quel server. Presumo che il server applicherebbe la stessa politica di origine --- in modo che solo il javascript ospitato su quel server possa accedere all'API. Ciò impedirebbe a qualcun altro di scrivere un client javascript per quell'API e di ospitarlo su un altro sito, giusto? Quindi, in che modo un server Web può impedire a un client malintenzionato di provare a inoltrare richieste AJAX ai suoi endpoint API mentre dichiara di eseguire javascript originato dallo stesso server Web? Qual è il modo in cui i server più popolari (Apache, nginx) proteggono da questo tipo di attacco? O la mia comprensione di questo è in qualche modo fuori luogo?
O la politica di origine incrociata viene applicata solo sul client?