За последние несколько часов я много читал о CORS, но в моем понимании все еще что-то не хватает.
Предположим, я пишу API, который должен использоваться клиентами в их собственных интерфейсах (которые, конечно, работают на другом хосте).
Какой заголовок access-control-allow-origin
должен действительно возвращать ваши конечные точки API?
Подстановочный знак *
позволит всем внешним интерфейсам фактически вызывать мой API, но это включает в себя хакерские сайты, которые теперь могут выполнять аутентифицированные запросы в фоновом режиме.
Единственный способ, который я могу себе представить, это то, что у меня есть белый список на моем сервере со всеми разрешенными клиентскими хостами, и если я получаю запрос, я проверяю, есть ли хост в этом списке, а затем возвращаю access-control-allow-origin: <that-matched-host>
. Но это звучит довольно громоздко. И я не думаю, что это действительно подойдет для действительно больших API.
Или это урок, который мы должны извлечь, что мы не должны использовать куки для аутентификации?
привет