01 Июн 2023
2 мин
1157

Что такое CORS и как его настроить

Познакомьтесь с CORS — важным механизмом безопасности для веб-разработчиков, который позволяет контролировать доступ к серверным ресурсам.

Symbolic representation of CORS mechanism in web development.

Содержание

CORS, или Cross-Origin Resource Sharing, является механизмом, который позволяет многим ресурсам (например, шрифтам, изображениям, JavaScript) на веб-странице запрашивать данные с другого домена, отличного от домена исходной страницы.

Зачем нужен CORS?

В целях безопасности, браузеры запрещают запросы к другим доменам, используя технику «одного источника» (same-origin policy). Это означает, что веб-страница, загруженная с одного домена, не может получить данные с другого домена без явного разрешения сервера. CORS позволяет серверам указать, с каких доменов разрешено получать данные, обеспечивая безопасность и контроль доступа.

Как настроить CORS?

Настройка CORS включает в себя добавление специальных заголовков HTTP на сервере, которые разрешают кросс-доменные запросы. Вот пример таких заголовков:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
  • Access-Control-Allow-Origin: указывает, какие домены могут делать запросы к серверу. Значение * разрешает доступ для всех доменов, но для повышения безопасности лучше указать конкретные домены.
  • Access-Control-Allow-Methods: перечисляет методы HTTP, которые разрешено использовать при запросах к серверу.
  • Access-Control-Allow-Headers: указывает, какие HTTP-заголовки допустимы при запросах к серверу.

Настройка CORS может отличаться в зависимости от используемого сервера и языка программирования. Вот примеры настройки CORS для некоторых популярных серверов:

Node.js (Express)

const express = require('express');
const app = express();

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
  res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
  next();
});

app.listen(3000, () => console.log('Server running on port 3000'));

Python (Flask)

from flask import Flask, request
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

if __name__ == '__main__':
    app.run()
Веб-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT
Получить программу

Заключение

CORS является важным механизмом безопасности, который позволяет контролировать доступ к ресурсам сервера с других доменов. Настройка CORS включает в себя добавление специальных HTTP-заголовков на сервере, которые определяют, какие домены, методы и заголовки разрешены для кросс-доменных запросов. В этой статье мы рассмотрели основы CORS и примеры его настройки для некоторых популярных серверов.

Добавить комментарий