У меня есть ядро .net и приложение Angular 2 SaaS. Я пытаюсь реализовать X-Frame-Options: Deny и Content-Security-Policy: фрейм-предки 'none'; чтобы мое приложение не было встроено в другие фреймы.
Я реализовал это по-разному в своем .net Core API и получил их в значениях заголовка ответа. Ожидаемое поведение: содержимое iframe (которое является моим веб-приложением) заблокировано, но приложение все равно загружается.
Реализация ядра .Net:
Первый подход:
app.Use(async (ctx, next) =>
{
ctx.Response.Headers.Add("X-Frame-Options",
"deny");
ctx.Response.Headers.Add("Content-Security-Policy",
"frame-ancestors 'none'; report-uri /cspreport");
await next();
});
Второй подход с использованием Nwebsec
app.UseXfo(o => o.Deny());
app.UseCsp(options => options.FrameAncestors(s => s.None()));
Я также добавил метатег ниже в раздел заголовка файла index.html:
<meta http-equiv="Content-Security-Policy" charset="utf-8">
Ниже моя сетевая вкладка, показывающая значения заголовка в заголовке ответа:
Я прочитал множество руководств и документов, но все равно вижу, что мое приложение загружается в iframe.
Любая помощь/совет будет высоко оценена.
Обновление И .net core API, и приложение Angular развернуты в двух разных службах приложений Azure.