🎭 前端校验绕过

Frontend Validation Bypass

👤 当前用户

未登录

📖 漏洞说明

很多开发者只在前端隐藏管理功能,认为用户看不到就安全了。

但攻击者可以直接调用后端 API!

🖥️ 模拟前端界面

根据角色显示不同的功能按钮:

请先登录查看界面

💡 注意:非管理员看不到"管理日志"按钮,但可以直接调用 API!

🧪 绕过攻击

直接调用管理员接口(绕过前端):

🔬 漏洞代码

// 前端代码(只隐藏按钮)
{currentUser.role === 'admin' && (
  <button onClick={getAdminLogs}>管理日志</button>
)}

// ❌ 后端没有校验
router.get('/admin/logs', (req, res) => {
  res.json(adminLogs)  // 直接返回,不校验权限
})

// ✅ 后端必须校验
router.get('/admin/logs', (req, res) => {
  if (currentUser.role !== 'admin') {
    return res.status(403).json({ error: '权限不足' })
  }
  res.json(adminLogs)
})