File tree Expand file tree Collapse file tree 8 files changed +39
-74
lines changed Expand file tree Collapse file tree 8 files changed +39
-74
lines changed Original file line number Diff line number Diff line change 1
1
using DeviceFlowWeb ;
2
2
using Microsoft . AspNetCore . Authentication . Cookies ;
3
+ using NetEscapades . AspNetCore . SecurityHeaders . Infrastructure ;
3
4
4
5
var builder = WebApplication . CreateBuilder ( args ) ;
5
6
6
7
var services = builder . Services ;
7
8
var configuration = builder . Configuration ;
8
9
var env = builder . Environment ;
9
10
11
+ services . AddSecurityHeaderPolicies ( )
12
+ . SetPolicySelector ( ( PolicySelectorContext ctx ) =>
13
+ {
14
+ return SecurityHeadersDefinitions
15
+ . GetHeaderPolicyCollection ( env . IsDevelopment ( ) ) ;
16
+ } ) ;
17
+
10
18
services . AddScoped < DeviceFlowService > ( ) ;
11
19
services . AddHttpClient ( ) ;
12
20
services . Configure < AuthConfigurations > ( configuration . GetSection ( "AuthConfigurations" ) ) ;
40
48
41
49
var app = builder . Build ( ) ;
42
50
43
- app . UseSecurityHeaders ( SecurityHeadersDefinitions
44
- . GetHeaderPolicyCollection ( env . IsDevelopment ( ) ) ) ;
51
+ app . UseSecurityHeaders ( ) ;
45
52
46
53
if ( env . IsDevelopment ( ) )
47
54
{
Original file line number Diff line number Diff line change @@ -27,23 +27,7 @@ public static HeaderPolicyCollection GetHeaderPolicyCollection(bool isDev)
27
27
// builder.AddCustomDirective("require-trusted-types-for", "'script'");
28
28
} )
29
29
. RemoveServerHeader ( )
30
- . AddPermissionsPolicy ( builder =>
31
- {
32
- builder . AddAccelerometer ( ) . None ( ) ;
33
- builder . AddAutoplay ( ) . None ( ) ;
34
- builder . AddCamera ( ) . None ( ) ;
35
- builder . AddEncryptedMedia ( ) . None ( ) ;
36
- builder . AddFullscreen ( ) . All ( ) ;
37
- builder . AddGeolocation ( ) . None ( ) ;
38
- builder . AddGyroscope ( ) . None ( ) ;
39
- builder . AddMagnetometer ( ) . None ( ) ;
40
- builder . AddMicrophone ( ) . None ( ) ;
41
- builder . AddMidi ( ) . None ( ) ;
42
- builder . AddPayment ( ) . None ( ) ;
43
- builder . AddPictureInPicture ( ) . None ( ) ;
44
- builder . AddSyncXHR ( ) . None ( ) ;
45
- builder . AddUsb ( ) . None ( ) ;
46
- } ) ;
30
+ . AddPermissionsPolicyWithDefaultSecureDirectives ( ) ;
47
31
48
32
if ( ! isDev )
49
33
{
Original file line number Diff line number Diff line change 3
3
using Fido2NetLib ;
4
4
using Microsoft . AspNetCore . Identity ;
5
5
using Microsoft . EntityFrameworkCore ;
6
+ using NetEscapades . AspNetCore . SecurityHeaders . Infrastructure ;
6
7
using Serilog ;
7
8
using StsServerIdentity . Data ;
8
9
using StsServerIdentity . Models ;
@@ -13,6 +14,13 @@ internal static class HostingExtensions
13
14
{
14
15
public static WebApplication ConfigureServices ( this WebApplicationBuilder builder )
15
16
{
17
+ builder . Services . AddSecurityHeaderPolicies ( )
18
+ . SetPolicySelector ( ( PolicySelectorContext ctx ) =>
19
+ {
20
+ return SecurityHeadersDefinitions
21
+ . GetHeaderPolicyCollection ( builder . Environment . IsDevelopment ( ) ) ;
22
+ } ) ;
23
+
16
24
builder . Services . AddRazorPages ( ) ;
17
25
18
26
builder . Services . AddDbContext < ApplicationDbContext > ( options =>
Original file line number Diff line number Diff line change @@ -30,23 +30,7 @@ public static HeaderPolicyCollection GetHeaderPolicyCollection(bool isDev)
30
30
// builder.AddCustomDirective("require-trusted-types-for", "'script'");
31
31
} )
32
32
. RemoveServerHeader ( )
33
- . AddPermissionsPolicy ( builder =>
34
- {
35
- builder . AddAccelerometer ( ) . None ( ) ;
36
- builder . AddAutoplay ( ) . None ( ) ;
37
- builder . AddCamera ( ) . None ( ) ;
38
- builder . AddEncryptedMedia ( ) . None ( ) ;
39
- builder . AddFullscreen ( ) . All ( ) ;
40
- builder . AddGeolocation ( ) . None ( ) ;
41
- builder . AddGyroscope ( ) . None ( ) ;
42
- builder . AddMagnetometer ( ) . None ( ) ;
43
- builder . AddMicrophone ( ) . None ( ) ;
44
- builder . AddMidi ( ) . None ( ) ;
45
- builder . AddPayment ( ) . None ( ) ;
46
- builder . AddPictureInPicture ( ) . None ( ) ;
47
- builder . AddSyncXHR ( ) . None ( ) ;
48
- builder . AddUsb ( ) . None ( ) ;
49
- } ) ;
33
+ . AddPermissionsPolicyWithDefaultSecureDirectives ( ) ;
50
34
51
35
if ( ! isDev )
52
36
{
Original file line number Diff line number Diff line change 2
2
using Microsoft . IdentityModel . JsonWebTokens ;
3
3
using Microsoft . IdentityModel . Logging ;
4
4
using Microsoft . OpenApi . Models ;
5
+ using NetEscapades . AspNetCore . SecurityHeaders . Infrastructure ;
5
6
using Serilog ;
6
7
7
8
namespace WebApi ;
@@ -16,6 +17,13 @@ public static WebApplication ConfigureServices(this WebApplicationBuilder builde
16
17
var configuration = builder . Configuration ;
17
18
_env = builder . Environment ;
18
19
20
+ services . AddSecurityHeaderPolicies ( )
21
+ . SetPolicySelector ( ( PolicySelectorContext ctx ) =>
22
+ {
23
+ return SecurityHeadersDefinitions . GetHeaderPolicyCollection (
24
+ _env ! . IsDevelopment ( ) ) ;
25
+ } ) ;
26
+
19
27
services . Configure < CookiePolicyOptions > ( options =>
20
28
{
21
29
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
@@ -90,8 +98,7 @@ public static WebApplication ConfigurePipeline(this WebApplication app)
90
98
91
99
app . UseSerilogRequestLogging ( ) ;
92
100
93
- app . UseSecurityHeaders ( SecurityHeadersDefinitions . GetHeaderPolicyCollection (
94
- _env ! . IsDevelopment ( ) ) ) ;
101
+ app . UseSecurityHeaders ( ) ;
95
102
96
103
if ( _env ! . IsDevelopment ( ) )
97
104
{
Original file line number Diff line number Diff line change @@ -12,23 +12,7 @@ public static HeaderPolicyCollection GetHeaderPolicyCollection(bool isDev)
12
12
. AddCrossOriginOpenerPolicy ( builder => builder . SameOrigin ( ) )
13
13
. AddCrossOriginEmbedderPolicy ( builder => builder . RequireCorp ( ) )
14
14
. AddCrossOriginResourcePolicy ( builder => builder . SameOrigin ( ) )
15
- . AddPermissionsPolicy ( builder =>
16
- {
17
- builder . AddAccelerometer ( ) . None ( ) ;
18
- builder . AddAutoplay ( ) . None ( ) ;
19
- builder . AddCamera ( ) . None ( ) ;
20
- builder . AddEncryptedMedia ( ) . None ( ) ;
21
- builder . AddFullscreen ( ) . All ( ) ;
22
- builder . AddGeolocation ( ) . None ( ) ;
23
- builder . AddGyroscope ( ) . None ( ) ;
24
- builder . AddMagnetometer ( ) . None ( ) ;
25
- builder . AddMicrophone ( ) . None ( ) ;
26
- builder . AddMidi ( ) . None ( ) ;
27
- builder . AddPayment ( ) . None ( ) ;
28
- builder . AddPictureInPicture ( ) . None ( ) ;
29
- builder . AddSyncXHR ( ) . None ( ) ;
30
- builder . AddUsb ( ) . None ( ) ;
31
- } ) ;
15
+ . AddPermissionsPolicyWithDefaultSecureDirectives ( ) ;
32
16
33
17
AddCspHstsDefinitions ( isDev , policy ) ;
34
18
Original file line number Diff line number Diff line change 2
2
using Microsoft . AspNetCore . Authentication . OpenIdConnect ;
3
3
using Microsoft . IdentityModel . JsonWebTokens ;
4
4
using Microsoft . IdentityModel . Logging ;
5
+ using NetEscapades . AspNetCore . SecurityHeaders . Infrastructure ;
5
6
using Serilog ;
6
7
7
8
namespace WebHybridClient ;
@@ -16,6 +17,13 @@ public static WebApplication ConfigureServices(this WebApplicationBuilder builde
16
17
var configuration = builder . Configuration ;
17
18
_env = builder . Environment ;
18
19
20
+ services . AddSecurityHeaderPolicies ( )
21
+ . SetPolicySelector ( ( PolicySelectorContext ctx ) =>
22
+ {
23
+ return SecurityHeadersDefinitions
24
+ . GetHeaderPolicyCollection ( _env ! . IsDevelopment ( ) ) ;
25
+ } ) ;
26
+
19
27
services . AddTransient < ApiService > ( ) ;
20
28
services . AddSingleton < ApiTokenInMemoryClient > ( ) ;
21
29
services . AddSingleton < ApiTokenCacheClient > ( ) ;
@@ -62,8 +70,7 @@ public static WebApplication ConfigurePipeline(this WebApplication app)
62
70
63
71
app . UseSerilogRequestLogging ( ) ;
64
72
65
- app . UseSecurityHeaders (
66
- SecurityHeadersDefinitions . GetHeaderPolicyCollection ( _env ! . IsDevelopment ( ) ) ) ;
73
+ app . UseSecurityHeaders ( ) ;
67
74
68
75
if ( _env ! . IsDevelopment ( ) )
69
76
{
Original file line number Diff line number Diff line change @@ -27,23 +27,7 @@ public static HeaderPolicyCollection GetHeaderPolicyCollection(bool isDev)
27
27
// builder.AddCustomDirective("require-trusted-types-for", "'script'");
28
28
} )
29
29
. RemoveServerHeader ( )
30
- . AddPermissionsPolicy ( builder =>
31
- {
32
- builder . AddAccelerometer ( ) . None ( ) ;
33
- builder . AddAutoplay ( ) . None ( ) ;
34
- builder . AddCamera ( ) . None ( ) ;
35
- builder . AddEncryptedMedia ( ) . None ( ) ;
36
- builder . AddFullscreen ( ) . All ( ) ;
37
- builder . AddGeolocation ( ) . None ( ) ;
38
- builder . AddGyroscope ( ) . None ( ) ;
39
- builder . AddMagnetometer ( ) . None ( ) ;
40
- builder . AddMicrophone ( ) . None ( ) ;
41
- builder . AddMidi ( ) . None ( ) ;
42
- builder . AddPayment ( ) . None ( ) ;
43
- builder . AddPictureInPicture ( ) . None ( ) ;
44
- builder . AddSyncXHR ( ) . None ( ) ;
45
- builder . AddUsb ( ) . None ( ) ;
46
- } ) ;
30
+ . AddPermissionsPolicyWithDefaultSecureDirectives ( ) ;
47
31
48
32
if ( ! isDev )
49
33
{
You can’t perform that action at this time.
0 commit comments