@middy/http-security-headers 6.4.4 → 7.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +16 -23
- package/package.json +4 -4
package/index.js
CHANGED
|
@@ -7,7 +7,7 @@ const defaults = {
|
|
|
7
7
|
// Fetch directives
|
|
8
8
|
// 'child-src': '', // fallback default-src
|
|
9
9
|
// 'connect-src': '', // fallback default-src
|
|
10
|
-
"default-src": "'none'",
|
|
10
|
+
"default-src": "'none' 'report-sample' 'report-sha256'",
|
|
11
11
|
// 'font-src':'', // fallback default-src
|
|
12
12
|
// 'frame-src':'', // fallback child-src > default-src
|
|
13
13
|
// 'img-src':'', // fallback default-src
|
|
@@ -30,7 +30,7 @@ const defaults = {
|
|
|
30
30
|
"frame-ancestors": "'none'",
|
|
31
31
|
"navigate-to": "'none'",
|
|
32
32
|
// Reporting directives
|
|
33
|
-
"report-to": "
|
|
33
|
+
"report-to": "default",
|
|
34
34
|
// Other directives
|
|
35
35
|
"require-trusted-types-for": "'script'",
|
|
36
36
|
"trusted-types": "'none'",
|
|
@@ -62,6 +62,7 @@ const defaults = {
|
|
|
62
62
|
permissionsPolicy: {
|
|
63
63
|
// Standard
|
|
64
64
|
accelerometer: "",
|
|
65
|
+
"all-screens-capture": "",
|
|
65
66
|
"ambient-light-sensor": "",
|
|
66
67
|
autoplay: "",
|
|
67
68
|
battery: "",
|
|
@@ -108,30 +109,21 @@ const defaults = {
|
|
|
108
109
|
permittedCrossDomainPolicies: {
|
|
109
110
|
policy: "none", // none, master-only, by-content-type, by-ftp-filename, all
|
|
110
111
|
},
|
|
111
|
-
poweredBy:
|
|
112
|
-
server: "",
|
|
113
|
-
},
|
|
112
|
+
poweredBy: true,
|
|
114
113
|
referrerPolicy: {
|
|
115
114
|
policy: "no-referrer",
|
|
116
115
|
},
|
|
117
116
|
reportingEndpoints: {},
|
|
118
117
|
reportTo: {
|
|
119
118
|
maxAge: 365 * 24 * 60 * 60,
|
|
120
|
-
// default: '',
|
|
121
119
|
includeSubdomains: true,
|
|
122
|
-
// csp: '',
|
|
123
|
-
// permissions: '',
|
|
124
|
-
// staple: '',
|
|
125
|
-
// xss: ''
|
|
126
120
|
},
|
|
127
121
|
strictTransportSecurity: {
|
|
128
122
|
maxAge: 180 * 24 * 60 * 60,
|
|
129
123
|
includeSubDomains: true,
|
|
130
124
|
preload: true,
|
|
131
125
|
},
|
|
132
|
-
xssProtection:
|
|
133
|
-
reportTo: "xss",
|
|
134
|
-
},
|
|
126
|
+
xssProtection: false,
|
|
135
127
|
};
|
|
136
128
|
|
|
137
129
|
const helmet = {};
|
|
@@ -260,20 +252,13 @@ helmet.permittedCrossDomainPolicies = (headers, config) => {
|
|
|
260
252
|
|
|
261
253
|
// https://github.com/helmetjs/hide-powered-by
|
|
262
254
|
helmet.poweredBy = (headers, config) => {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
} else {
|
|
266
|
-
headers.Server = undefined;
|
|
267
|
-
headers["X-Powered-By"] = undefined;
|
|
268
|
-
}
|
|
255
|
+
delete headers.Server;
|
|
256
|
+
delete headers["X-Powered-By"];
|
|
269
257
|
};
|
|
270
258
|
|
|
271
259
|
// https://github.com/helmetjs/x-xss-protection
|
|
272
260
|
helmetHtmlOnly.xssProtection = (headers, config) => {
|
|
273
|
-
|
|
274
|
-
if (config.reportTo) {
|
|
275
|
-
header += `; report=${config.reportTo}`;
|
|
276
|
-
}
|
|
261
|
+
const header = "0";
|
|
277
262
|
headers["X-XSS-Protection"] = header;
|
|
278
263
|
};
|
|
279
264
|
|
|
@@ -305,6 +290,14 @@ const httpSecurityHeadersMiddleware = (opts = {}) => {
|
|
|
305
290
|
}
|
|
306
291
|
}
|
|
307
292
|
}
|
|
293
|
+
// Clean up headers removals
|
|
294
|
+
const headers = {};
|
|
295
|
+
for (const key of Object.keys(request.response.headers)) {
|
|
296
|
+
if (typeof request.response.headers[key] !== "undefined") {
|
|
297
|
+
headers[key] = request.response.headers[key];
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
request.response.headers = headers;
|
|
308
301
|
};
|
|
309
302
|
const httpSecurityHeadersMiddlewareOnError = async (request) => {
|
|
310
303
|
if (request.response === undefined) return;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@middy/http-security-headers",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0-alpha.1",
|
|
4
4
|
"description": "Applies best practice security headers to responses. It's a simplified port of HelmetJS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
|
-
"node": ">=
|
|
7
|
+
"node": ">=22"
|
|
8
8
|
},
|
|
9
9
|
"engineStrict": true,
|
|
10
10
|
"publishConfig": {
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
},
|
|
69
69
|
"gitHead": "7a6c0fbb8ab71d6a2171e678697de9f237568431",
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@middy/util": "
|
|
71
|
+
"@middy/util": "7.0.0-alpha.1"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@middy/core": "
|
|
74
|
+
"@middy/core": "7.0.0-alpha.1"
|
|
75
75
|
}
|
|
76
76
|
}
|