diff --git a/passman-dev/php/passman/dashboard.php b/passman-dev/php/passman/dashboard.php
index dcc8401..ba8795f 100644
--- a/passman-dev/php/passman/dashboard.php
+++ b/passman-dev/php/passman/dashboard.php
@@ -99,16 +99,23 @@ $stmt->close();
//echo htmlspecialchars($username);
-echo "
Entries of " . $username . "
";
+$safe_username = htmlspecialchars($username, ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8");
+echo "Entries of " . $safe_username . "
";
if (!empty($result) && $result->num_rows >= 1) {
while ($row = $result -> fetch_assoc()) {
+ // Escape output to prevent stored XSS (DB content must be treated as untrusted).
+ $safe_url = htmlspecialchars($row["web_url"], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8");
+ $safe_user = htmlspecialchars($row["web_username"], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8");
+ $safe_pass = htmlspecialchars($row["web_password"], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8");
+ $webid_safe = (int)$row["webid"];
+
echo "";
- echo "| " . $row["web_url"] . " |
" .
- "| Username: " . $row["web_username"] . " | Password: " . $row["web_password"] . " |
";
+ echo "| " . $safe_url . " |
" .
+ "| Username: " . $safe_user . " | Password: " . $safe_pass . " |
";
echo " |
";
echo " |
";