Mi sto approfondendo nello sviluppo di API RESTful e finora ho lavorato con alcuni framework diversi per raggiungere questo obiettivo. Ovviamente mi sono imbattuto nella stessa politica di origine e ora mi chiedo come i server Web (anziché i browser Web) lo applichino. Da quello che ho capito, sembra che alla fine del browser appaiano alcuni controlli (ad es. Onorare un'intestazione Access-Control-Allow-Origin ricevuta da un server). Ma per quanto riguarda il 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. Suppongo che il server applichi la politica della stessa origine, in modo tale 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 ospitarlo su un altro sito, giusto? Quindi, come potrebbe un server Web essere in grado di fermare un client dannoso che proverebbe a inviare richieste AJAX ai suoi endpoint API sostenendo 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 dal comune?
Oppure la politica di origine incrociata viene applicata solo sul lato client?