diff options
| author | selsta <selsta@sent.at> | 2026-04-17 18:02:58 +0200 |
|---|---|---|
| committer | selsta <selsta@sent.at> | 2026-04-17 18:02:58 +0200 |
| commit | 23ec5eb6a1dc61ef72a3ca4c9bb5942cbf60d959 (patch) | |
| tree | ecf14bd8dd24d33aa9542f18fc5c159c00ffa308 | |
| parent | 49c3e498c79b28740a7febb8c74dfa87dbf20298 (diff) | |
| download | monzero-gui-23ec5eb6a1dc61ef72a3ca4c9bb5942cbf60d959.tar.gz monzero-gui-23ec5eb6a1dc61ef72a3ca4c9bb5942cbf60d959.tar.xz monzero-gui-23ec5eb6a1dc61ef72a3ca4c9bb5942cbf60d959.zip | |
qml: escape untrusted text in RichText views
| -rw-r--r-- | components/TxConfirmationDialog.qml | 3 | ||||
| -rw-r--r-- | js/Utils.js | 10 | ||||
| -rw-r--r-- | pages/settings/SettingsLog.qml | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/components/TxConfirmationDialog.qml b/components/TxConfirmationDialog.qml index dc55a6f5..1700aa0a 100644 --- a/components/TxConfirmationDialog.qml +++ b/components/TxConfirmationDialog.qml @@ -32,6 +32,7 @@ import QtQuick.Controls 2.2 import QtQuick.Layouts 1.1 import "../components" as MoneroComponents +import "../js/Utils.js" as Utils import FontAwesome 1.0 Rectangle { @@ -306,7 +307,7 @@ Rectangle { } var title; if (addressBookName) { - title = FontAwesome.addressBook + " " + addressBookName; + title = FontAwesome.addressBook + " " + Utils.htmlEscape(addressBookName); } else { title = qsTr("Monero address") + translationManager.emptyString; } diff --git a/js/Utils.js b/js/Utils.js index 9094ca4f..e031c78a 100644 --- a/js/Utils.js +++ b/js/Utils.js @@ -130,3 +130,13 @@ function parseDateStringOrRestoreHeightAsInteger(value) { } return restoreHeight; } + +function htmlEscape(s) { + if (s === null || s === undefined) + return ""; + return String(s) + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/"/g, """); +} diff --git a/pages/settings/SettingsLog.qml b/pages/settings/SettingsLog.qml index ad75d6a5..efe06f0e 100644 --- a/pages/settings/SettingsLog.qml +++ b/pages/settings/SettingsLog.qml @@ -180,7 +180,7 @@ Rectangle { consoleArea.append(msg); } function logMessage(msg){ - msg = msg.trim(); + msg = Utils.htmlEscape(msg.trim()); var color = MoneroComponents.Style.defaultFontColor; if(msg.toLowerCase().indexOf('error') >= 0){ color = MoneroComponents.Style.errorColor; |
