У меня есть ASP.NET Core 2.1 API, который был в разработке некоторое время. В моем файле Startup.cs я определил политику разработки CORS, как показано ниже;
services.AddCors(options =>
{
options.AddPolicy("CorsDevPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
В основном широко открытая политика.
Сейчас мы готовимся к производственному выпуску, и я хочу убедиться, что он правильно защищен.
Однако у меня нет большого опыта работы с CORS, и когда я изучаю эту тему, мне интересно, нужно ли мне беспокоиться об ограничении политики CORS, поскольку мой API на самом деле вызывается не напрямую из веб-браузера, а скорее из клиентского приложения, которое использует HttpClient.
Кроме того, моему API необходим токен доступа OAuth2.0, чтобы только клиентские приложения, которые я зарегистрировал в Azure Active Directory, могли получить доступ к API. Итак, мне нужно беспокоиться об ограничении моей политики CORS в этом сценарии?
И если мне действительно нужно ограничить мою политику CORS, лучший способ ограничить ее - добавить что-то вроде следующего, включающее в себя определенный список клиентских доменов для каждого сайта, который будет обращаться к API?
services.AddCors(options =>
{
options.AddPolicy("CorsProdPolicy",
builder =>
builder.WithOrigins(
"https://client1.com",
"https://client2.com",
...
...
...
"https://client100.com"
)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
Или есть лучший способ сделать это?