Estou aprofundando o desenvolvimento de APIs RESTful e, até agora, trabalhei com algumas estruturas diferentes para conseguir isso. É claro que eu segui a política de mesma origem e agora estou me perguntando como os servidores da Web (em vez de navegadores) a impõem. Pelo que entendi, alguma aplicação parece ocorrer no final do navegador (por exemplo, honrando um cabeçalho de Controle de Acesso-Permitir-Origem recebido de um servidor). Mas e o servidor?
Por exemplo, digamos que um servidor Web esteja hospedando um aplicativo Web Javascript que acesse uma API, também hospedada nesse servidor. Presumo que o servidor imponha a política de mesma origem --- para que somente o javascript hospedado nesse servidor possa acessar a API. Isso impediria que outra pessoa escrevesse um cliente javascript para essa API e a hospedasse em outro site, certo? Então, como um servidor da web seria capaz de parar um cliente mal-intencionado que tentaria fazer solicitações AJAX para seus pontos de extremidade da API enquanto alegava estar executando o javascript originário desse mesmo servidor da web? Qual é a maneira como os servidores mais populares (Apache, nginx) protegem contra esse tipo de ataque? Ou o meu entendimento disso está de alguma forma errado?
Ou a política de origem é aplicada apenas no cliente?