mirror of
https://github.com/myronblair/tomtomgames
synced 2026-07-28 09:12:36 -05:00
Fix stored XSS in admin gamer overview (unescaped username/alias/email) and undefined-variable logging bug in purchase.php
This commit is contained in:
+3
-3
@@ -1636,9 +1636,9 @@ function renderGamerOverview(u, stats) {
|
|||||||
const verified = parseInt(u.email_verified);
|
const verified = parseInt(u.email_verified);
|
||||||
document.getElementById('gm-info-grid').innerHTML = [
|
document.getElementById('gm-info-grid').innerHTML = [
|
||||||
{ label: 'User ID', val: '#' + u.id },
|
{ label: 'User ID', val: '#' + u.id },
|
||||||
{ label: 'Username', val: u.username },
|
{ label: 'Username', val: escHtmlA(u.username) },
|
||||||
{ label: 'Alias', val: u.alias },
|
{ label: 'Alias', val: escHtmlA(u.alias) },
|
||||||
{ label: 'Email', val: u.email || '—' },
|
{ label: 'Email', val: u.email ? escHtmlA(u.email) : '—' },
|
||||||
{ label: 'Status', val: `<span class="badge b-${u.status}">${u.status}</span>` },
|
{ 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: '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>` },
|
{ 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
@@ -66,7 +66,7 @@ if ($isManual) {
|
|||||||
$playerName, $cardholderName, $billingEmail, $isCustom ? 1 : 0
|
$playerName, $cardholderName, $billingEmail, $isCustom ? 1 : 0
|
||||||
]);
|
]);
|
||||||
$pid = db()->lastInsertId();
|
$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,
|
echo json_encode(['success'=>true,'manual'=>true,'purchase_id'=>$pid,
|
||||||
'message'=>"Request #{$pid} submitted! Tokens credited after payment verification."]);
|
'message'=>"Request #{$pid} submitted! Tokens credited after payment verification."]);
|
||||||
exit;
|
exit;
|
||||||
@@ -150,7 +150,7 @@ $bal = db()->prepare("SELECT tokens FROM users WHERE id=?");
|
|||||||
$bal->execute([$userId]);
|
$bal->execute([$userId]);
|
||||||
$newBal = (float)$bal->fetchColumn();
|
$newBal = (float)$bal->fetchColumn();
|
||||||
logActivity('token_purchase', $userId, null, 'purchase', (int)db()->lastInsertId(),
|
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([
|
echo json_encode([
|
||||||
'success' => true,
|
'success' => true,
|
||||||
'manual' => false,
|
'manual' => false,
|
||||||
|
|||||||
Reference in New Issue
Block a user