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,15 +50,20 @@ class Slack extends NotificationProvider {
const address = this.extractAddress(monitorJSON); const address = this.extractAddress(monitorJSON);
if (address) { if (address) {
actions.push({ try {
"type": "button", actions.push({
"text": { "type": "button",
"type": "plain_text", "text": {
"text": "Visit site", "type": "plain_text",
}, "text": "Visit site",
"value": "Site", },
"url": address, "value": "Site",
}); "url": new URL(address),
});
} catch (e) {
log.debug("slack", `Failed to parse address ${address} as URL`);
}
} }
return actions; return actions;