Added Cloudflare RocketLoader support.
Ylian Saint-Hilaire committed
Jan 6, 2021 at 14:23 UTC
923ac49637ba5c4bf957069113f7f00f4d48dbaa
3 files changed
+4
-1
certoperations.js
+1
@@ -110,6 +110,7 @@ module.exports.CertificateOperations = function (parent) {
110
var acmCerts = [], acmmatch = [];
111
if (amtacmactivation.certs != null) {
112
for (var j in amtacmactivation.certs) {
113
+ if (j.startsWith('_')) continue; // Skip any certificates that start with underscore as the name.
114
var acmconfig = amtacmactivation.certs[j], r = null;
115
116
if ((typeof acmconfig.certpfx == 'string') && (typeof acmconfig.certpfxpass == 'string')) {
meshcentral.js
+1
@@ -1350,6 +1350,7 @@ function CreateMeshCentralServer(config, args) {
1350
1351
// Load CloudFlare trusted proxies list if needed
1352
if ((obj.config.settings.trustedproxy != null) && (typeof obj.config.settings.trustedproxy == 'string') && (obj.config.settings.trustedproxy.toLowerCase() == 'cloudflare')) {
1353
+ obj.config.settings.extrascriptsrc = 'ajax.cloudflare.com'; // Add CloudFlare as a trusted script source. This allows for CloudFlare's RocketLoader feature.
1354
delete obj.args.trustedproxy;
1355
delete obj.config.settings.trustedproxy;
1356
obj.certificateOperations.loadTextFile('https://www.cloudflare.com/ips-v4', null, function (url, data, tag) {
webserver.js
+2
-1
@@ -5014,11 +5014,12 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
5014
const geourl = (domain.geolocation ? ' *.openstreetmap.org' : '');
5015
var selfurl = ' wss://' + req.headers.host;
5016
if ((xforwardedhost != null) && (xforwardedhost != req.headers.host)) { selfurl += ' wss://' + xforwardedhost; }
5017
+ const extraScriptSrc = (parent.config.settings.extrascriptsrc != null) ? (' ' + parent.config.settings.extrascriptsrc) : '';
5018
const headers = {
5019
'Referrer-Policy': 'no-referrer',
5020
'X-XSS-Protection': '1; mode=block',
5021
'X-Content-Type-Options': 'nosniff',
5021
- 'Content-Security-Policy': "default-src 'none'; font-src 'self'; script-src 'self' 'unsafe-inline'; connect-src 'self'" + geourl + selfurl + "; img-src 'self'" + geourl + " data:; style-src 'self' 'unsafe-inline'; frame-src 'self' https://*.youtube.com mcrouter:; media-src 'self'; form-action 'self'"
5022
+ 'Content-Security-Policy': "default-src 'none'; font-src 'self'; script-src 'self' 'unsafe-inline'" + extraScriptSrc + "; connect-src 'self'" + geourl + selfurl + "; img-src 'self'" + geourl + " data:; style-src 'self' 'unsafe-inline'; frame-src 'self' https://*.youtube.com mcrouter:; media-src 'self'; form-action 'self'"
5023
};
5024
if ((parent.config.settings.allowframing !== true) && (typeof parent.config.settings.allowframing !== 'string')) { headers['X-Frame-Options'] = 'sameorigin'; }
5025
res.set(headers);