only allow for valid urls in slack button (#5312)

This commit is contained in:
Daan Meijer 2024-11-05 20:50:47 +01:00 committed by GitHub
parent a7407a1b65
commit 13ea190298
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 10 deletions

View File

@ -1,7 +1,7 @@
const NotificationProvider = require("./notification-provider"); const NotificationProvider = require("./notification-provider");
const axios = require("axios"); const axios = require("axios");
const { setSettings, setting } = require("../util-server"); const { setSettings, setting } = require("../util-server");
const { getMonitorRelativeURL, UP } = require("../../src/util"); const { getMonitorRelativeURL, UP, log } = require("../../src/util");
class Slack extends NotificationProvider { class Slack extends NotificationProvider {
name = "slack"; name = "slack";
@ -50,6 +50,7 @@ class Slack extends NotificationProvider {
const address = this.extractAddress(monitorJSON); const address = this.extractAddress(monitorJSON);
if (address) { if (address) {
try {
actions.push({ actions.push({
"type": "button", "type": "button",
"text": { "text": {
@ -57,8 +58,12 @@ class Slack extends NotificationProvider {
"text": "Visit site", "text": "Visit site",
}, },
"value": "Site", "value": "Site",
"url": address, "url": new URL(address),
}); });
} catch (e) {
log.debug("slack", `Failed to parse address ${address} as URL`);
}
} }
return actions; return actions;