Есть что-то около Cross Origin Resource Sharing (CORS), что я никогда не понимал по-настоящему, а именно, что с HTTP-запросом кросс-происхождения клиент не может решить, какой сервер (ы) он хочет доверять; вместо этого сервер объявляет (в заголовке ответа Access-Control-Allow-Origin
), что доверяет ему один или несколько конкретных клиентов (истоков). Браузер с поддержкой CORS будет только доставлять ответ сервера на приложение, если сервер говорит, что клиент доверяет серверу. Это похоже на обратный путь установления отношений доверия между двумя сторонами HTTP.С CORS, почему серверы объявляют, какие клиенты могут доверять ему, а не клиенты, объявляющие, на каких серверах они доверяют?
Что для меня имеет смысл, так это механизм, подобный следующему: клиент объявляет список источников, которым он доверяет; например, через некоторый вымышленный элемент <meta allow-cross-origin="https://another-site:1234"/>
в <head>
. (Конечно, браузер должен был бы обеспечить, чтобы эти элементы были доступны только для чтения и не могут быть удалены, изменены или дополнены с помощью сценариев.)
Что я не понимаю о CORS? Почему заявление о доверенном происхождении на стороне клиента не работает? Почему серверы могут подтвердить, какие клиенты (источники) могут доверять своим ответам? Кто на самом деле защищен от КОРС? Защищает ли сервер или клиент?
(Это очень много вопросов. Я надеюсь, что это ясно, что я не ожидал ответа на каждый из них, а просто ответ, который указывает на мое фундаментальное непонимание.)
В случае с downvoter, я был бы признателен за то, что не так с моим вопросом. Я с удовольствием отредактировал его, объясню дальше или уберу вопрос, если он действительно неуместен. – stakx
Веб-сайт, на котором размещен JavaScript, неявно утверждает, что он доверяет сайту, на котором он пытается получить данные, путем запроса данных с этого URL-адреса в первую очередь. – Quentin
"сервер объявляет (в заголовке ответа Access-Control-Allow-Origin), что один или несколько конкретных клиентов (истоков) доверяют ему" - Нет, он заявляет, что доверяет этим источникам, а не тем, что они ему доверяют. – Quentin