[Dashboard] 安全问题 - URL参数未校验 & 硬编码问题 #5

Open
opened 2026-01-18 17:07:45 +08:00 by tangweijie · 0 comments
Owner

问题描述

Dashboard 前端页面 Index.vue 存在以下安全问题:

1. URL 参数未校验

位置: frontend/src/views/Dashboard/Index.vue:324-326

const prisonerId = route.query.prisonerId as string
if (prisonerId) {
  loadData(Number(prisonerId))
}

URL 参数 prisonerId 未验证直接转换使用,可能导致:

  • 非数字字符串转换失败
  • SQL 注入风险(如果后续用于查询)
  • XSS 攻击风险

2. 罪犯名称硬编码

位置: frontend/src/views/Dashboard/Index.vue:3

<div class="prison-name">王某某</div>

罪犯名称应从接口数据 basicInfo.prisonerName 获取,而非硬编码。


修复建议

// 1. 添加参数校验
const prisonerId = route.query.prisonerId as string
if (!prisonerId) {
  ElMessage.warning('请选择要查看的罪犯')
  return
}
const id = Number(prisonerId)
if (isNaN(id) || id <= 0) {
  ElMessage.error('罪犯ID无效')
  return
}
loadData(id)

// 2. 模板绑定真实数据
<div class="prison-name">{{ basicInfo.prisonerName || '加载中...' }}</div>

影响范围

  • 安全性:中
  • 用户体验:中
  • 数据正确性:低

修复优先级

P0 - 立即修复


相关信息

  • 文件: frontend/src/views/Dashboard/Index.vue
  • 审查时间: 2026-01-18
  • 代码行数: 562 行
## 问题描述 Dashboard 前端页面 `Index.vue` 存在以下安全问题: ### 1. URL 参数未校验 **位置**: `frontend/src/views/Dashboard/Index.vue:324-326` ```javascript const prisonerId = route.query.prisonerId as string if (prisonerId) { loadData(Number(prisonerId)) } ``` URL 参数 `prisonerId` 未验证直接转换使用,可能导致: - 非数字字符串转换失败 - SQL 注入风险(如果后续用于查询) - XSS 攻击风险 ### 2. 罪犯名称硬编码 **位置**: `frontend/src/views/Dashboard/Index.vue:3` ```html <div class="prison-name">王某某</div> ``` 罪犯名称应从接口数据 `basicInfo.prisonerName` 获取,而非硬编码。 --- ## 修复建议 ```javascript // 1. 添加参数校验 const prisonerId = route.query.prisonerId as string if (!prisonerId) { ElMessage.warning('请选择要查看的罪犯') return } const id = Number(prisonerId) if (isNaN(id) || id <= 0) { ElMessage.error('罪犯ID无效') return } loadData(id) // 2. 模板绑定真实数据 <div class="prison-name">{{ basicInfo.prisonerName || '加载中...' }}</div> ``` --- ## 影响范围 - 安全性:中 - 用户体验:中 - 数据正确性:低 --- ## 修复优先级 **P0 - 立即修复** --- ## 相关信息 - 文件: `frontend/src/views/Dashboard/Index.vue` - 审查时间: 2026-01-18 - 代码行数: 562 行
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tangweijie/xlcp-frontend#5
No description provided.