Fix stored XSS in admin gamer overview (unescaped username/alias/email) and undefined-variable logging bug in purchase.php

This commit is contained in:
2026-07-06 07:52:39 +00:00
parent 674ec71682
commit abe49a77fa
2 changed files with 5 additions and 5 deletions
+3 -3
View File
@@ -1636,9 +1636,9 @@ function renderGamerOverview(u, stats) {
const verified = parseInt(u.email_verified);
document.getElementById('gm-info-grid').innerHTML = [
{ label: 'User ID', val: '#' + u.id },
{ label: 'Username', val: u.username },
{ label: 'Alias', val: u.alias },
{ label: 'Email', val: u.email || '—' },
{ label: 'Username', val: escHtmlA(u.username) },
{ label: 'Alias', val: escHtmlA(u.alias) },
{ label: 'Email', val: u.email ? escHtmlA(u.email) : '—' },
{ label: 'Status', val: `<span class="badge b-${u.status}">${u.status}</span>` },
{ label: 'Email Verified',val: verified ? '<span style="color:var(--green)">✓ Yes</span>' : '<span style="color:var(--yellow)">⚠ No</span>' },
{ label: 'Token Balance', val: `<span style="color:var(--gold);font-family:\'Exo 2\',sans-serif;font-weight:700">${parseFloat(u.tokens||0)} 🪙</span>` },
+2 -2
View File
@@ -66,7 +66,7 @@ if ($isManual) {
$playerName, $cardholderName, $billingEmail, $isCustom ? 1 : 0
]);
$pid = db()->lastInsertId();
logActivity('manual_payment_pending', $userId, null, 'purchase', 0, "Manual payment pending: {$paymentMethod} \${$amountDollars}");
logActivity('manual_payment_pending', $userId, null, 'purchase', 0, "Manual payment pending: {$method} \$" . number_format($priceCents / 100, 2));
echo json_encode(['success'=>true,'manual'=>true,'purchase_id'=>$pid,
'message'=>"Request #{$pid} submitted! Tokens credited after payment verification."]);
exit;
@@ -150,7 +150,7 @@ $bal = db()->prepare("SELECT tokens FROM users WHERE id=?");
$bal->execute([$userId]);
$newBal = (float)$bal->fetchColumn();
logActivity('token_purchase', $userId, null, 'purchase', (int)db()->lastInsertId(),
"Bought {$tokens} tokens via {$paymentMethod} for \${$amountDollars}");
"Bought {$tokens} tokens via {$method} for \$" . number_format($priceCents / 100, 2));
echo json_encode([
'success' => true,
'manual' => false,