Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

CORS (Cross-Origin Resource Sharing)

Зачем

  • Механизм, используемый веб-браузерами для разрешения запросов на доступ к ресурсам/данным на другом домене, различном от текущего домена, на котором расположен код, запрашивающий эти данные.
  • То есть, если сайт A запрашивает данные с сайта B, который находится на другом домене, браузер отправляет запрос на сайт B для получения ответа на запрос. CORS позволяет серверу сайта B указать, разрешено ли сайту A делать такие запросы и какие запросы разрешены.
  • CORS помогает защитить пользователей от несанкционированного доступа к данным, но может вызвать проблемы с безопасностью и доступностью веб-приложений, если не настроен правильно.
  • Механизм, использующий дополнительные HTTP-заголовки, чтобы дать возможность агенту пользователя получать разрешения на доступ к выбранным ресурсам с сервера на источнике (домене), отличном от того, что сайт использует в данный момент.
  • Говорят, что агент пользователя делает запрос с другого источника (cross-origin HTTP request), если источник текущего документа отличается от запрашиваемого ресурса доменом, протоколом или портом. Пример: http://domain-a.com, запрашивает src по адресу http://domain-b.com/image.jpg
  • Origin - Web content’s origin is defined by the:
    • scheme (protocol)
    • hostname (domain)
    • and port of the URL used to access it
    • Two objects have the same origin only when the scheme, hostname, and port all match.
  • CORS между доменами