По умолчанию CORS не включает файлы cookie в запросах разных источников. Это отличается от других методов перекрестного происхождения, таких как JSON-P. JSON-P всегда включает файлы cookie с запросом, и это может привести к классу уязвимостей, называемому подделкой межсайтовых запросов или CSRF.
Чтобы снизить вероятность появления уязвимостей CSRF в CORS, CORS требует, чтобы и сервер, и клиент подтвердили, что разрешено включать файлы cookie в запросы. Это делает куки активным решением, а не тем, что происходит пассивно без какого-либо контроля.
Код клиента должен установить withCredentials
свойство на XMLHttpRequest
для true
того, чтобы дать разрешение.
Однако одного этого заголовка недостаточно. Сервер должен ответить Access-Control-Allow-Credentials
заголовком. Ответ с этим заголовком true
означает, что сервер разрешает использование файлов cookie (или других учетных данных пользователя) в запросах разных источников.
Вы также должны убедиться, что ваш браузер не блокирует сторонние файлы cookie, если вы хотите, чтобы работали запросы с учетными данными из разных источников.
Обратите внимание, что независимо от того, делаете ли вы запросы одного и того же происхождения или запросы из разных источников, вам необходимо защитить свой сайт от CSRF (особенно, если ваш запрос включает файлы cookie).