@@ -16,12 +16,17 @@ const frontendloggerScript = () => {
16
16
return document . getElementById ( 'frontendlogger' ) [ 'innerHTML' ] ;
17
17
}
18
18
19
+ const securityHeadersMiddleware = ( req , res , next ) => {
20
+ res . header ( "X-Frame-Options" , "SAMEORIGIN" ) ;
21
+ res . header ( "Strict-Transport-Security" , "max-age=31536000; includeSubDomains" ) ;
22
+ res . header ( "X-Content-Type-Options" , "nosniff" ) ;
23
+ res . header ( "X-XSS-Protection" , "1; mode=block" ) ;
24
+ res . header ( "Referrer-Policy" , "no-referrer-when-downgrade" ) ;
25
+ next ( ) ;
26
+ }
27
+
19
28
server . set ( "views" , `${ __dirname } /../build` ) ;
20
29
server . set ( "view engine" , "mustache" ) ;
21
- server . set ( "X-Frame-Options" , "SAMEORIGIN" ) ;
22
- server . set ( "Strict-Transport-Security" , "max-age=31536000; includeSubDomains" ) ;
23
- server . set ( "X-Content-Type-Options" , "nosniff" ) ;
24
- server . set ( "X-XSS-Protection" , "1; mode=block" ) ;
25
30
server . engine ( "html" , mustacheExpress ( ) ) ;
26
31
27
32
// Parse application/json
@@ -48,7 +53,7 @@ server.get(`/config`, (req, res) =>
48
53
) ;
49
54
50
55
// Match everything except internal og static
51
- server . use ( / ^ (? ! .* \/ ( i n t e r n a l | s t a t i c ) \/ ) .* $ / , ( req , res ) =>
56
+ server . use ( / ^ (? ! .* \/ ( i n t e r n a l | s t a t i c ) \/ ) .* $ / , securityHeadersMiddleware , ( req , res ) =>
52
57
getDecorator ( )
53
58
. then ( ( fragments ) => {
54
59
res . render ( "index.html" , { ...fragments , FRONTEND_LOGGER_SCRIPT : frontendloggerScript ( ) } ) ;
0 commit comments