diff --git a/server/modules/google-analytics.js b/server/modules/google-analytics.js
index 55820a857..0a40076d3 100644
--- a/server/modules/google-analytics.js
+++ b/server/modules/google-analytics.js
@@ -3,8 +3,13 @@ let GoogleAnalytics = (() => {
return "" +
"";
}
+ function isValidTag(tagInput) {
+ const re = /^\w{1,2}-\d{8}$/g;
+ return tagInput.match(re) != null;
+ }
return {
- getGoogleAnalyticsScript: getGoogleAnalyticsScript
+ getGoogleAnalyticsScript: getGoogleAnalyticsScript,
+ isValidTag: isValidTag
};
})();
diff --git a/server/socket-handlers/status-page-socket-handler.js b/server/socket-handlers/status-page-socket-handler.js
index 717aba9c4..359ed15bd 100644
--- a/server/socket-handlers/status-page-socket-handler.js
+++ b/server/socket-handlers/status-page-socket-handler.js
@@ -7,6 +7,7 @@ const Database = require("../database");
const apicache = require("../modules/apicache");
const StatusPage = require("../model/status_page");
const { UptimeKumaServer } = require("../uptime-kuma-server");
+const googleAnalytics = require("../modules/google-analytics");
/**
* Socket handlers for status page
@@ -163,7 +164,7 @@ module.exports.statusPageSocketHandler = (socket) => {
statusPage.custom_css = config.customCSS;
statusPage.show_powered_by = config.showPoweredBy;
statusPage.modified_date = R.isoDateTime();
- statusPage.google_analytics_tag_id = config.googleAnalyticsId;
+ statusPage.google_analytics_tag_id = googleAnalytics.isValidTag(config.googleAnalyticsId) ? config.googleAnalyticsId : "";
await R.store(statusPage);