Я углубляюсь в разработку RESTful API и до сих пор работал с несколькими различными средами для достижения этой цели. Конечно, я столкнулся с политикой того же происхождения, и теперь мне интересно, как веб-серверы (а не веб-браузеры) применяют ее. Из того, что я понимаю, кажется, что какое-то принуждение происходит в конце браузера (например, при чтении заголовка Access-Control-Allow-Origin, полученного от сервера). Но как насчет сервера?
Например, скажем, на веб-сервере размещено веб-приложение Javascript, которое обращается к API, также размещенному на этом сервере. Я предполагаю, что сервер будет применять политику того же источника - так что только javascript, размещенный на этом сервере, будет иметь доступ к API. Это помешает кому-то еще написать клиент JavaScript для этого API и разместить его на другом сайте, верно? Итак, как веб-сервер сможет остановить злонамеренный клиент, который будет пытаться отправлять запросы AJAX на свои конечные точки API, утверждая при этом, что он запускает javascript, исходящий от того же веб-сервера? Как наиболее популярные серверы (Apache, nginx) защищают от такого рода атак? Или мое понимание этого как-то не соответствует действительности?
Или политика перекрестного происхождения применяется только на стороне клиента?