Sobes.tech
Back to questions
Junior — Middle
70

Можете объяснить, что такое CORS и зачем он нужен в веб-разработке?

Companies where asked
AstonAston

Answer from AI

sobes.tech AI

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

По умолчанию браузеры блокируют запросы с одного домена к другому (междоменные запросы) из-за политики одного источника (Same-Origin Policy). CORS позволяет серверу явно разрешить или запретить такие запросы.

Как это работает:

  • Клиент (браузер) отправляет запрос с заголовком Origin, указывающим домен источника.
  • Сервер проверяет этот домен и, если разрешает доступ, отвечает с заголовком Access-Control-Allow-Origin, указывающим разрешённый домен или * для всех.
  • Если заголовок отсутствует или домен не разрешён, браузер блокирует доступ к ответу.

Пример настройки CORS в ASP.NET Core:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("AllowSpecificOrigin",
            builder => builder.WithOrigins("https://example.com")
                              .AllowAnyHeader()
                              .AllowAnyMethod());
    });
}

public void Configure(IApplicationBuilder app)
{
    app.UseCors("AllowSpecificOrigin");
    // остальные middleware
}

Таким образом, CORS помогает безопасно управлять доступом к API или ресурсам с разных доменов.