Web 安全学习框架搭建
在深入 Web 安全之前,建立清晰的技术架构认知至关重要。如果基础概念模糊,单纯记忆注入手法往往难以应对实际场景。本文将从前后端交互原理出发,梳理核心分工,并系统总结常见漏洞类型及 CTF 解题思路。
Web 应用架构与 API 交互
一个典型的 Web 应用由前端、后端和数据库组成。前端负责展示与交互,后端处理业务逻辑与数据持久化,API 则是两者之间的契约。
以用户登录为例:
-
前端发起请求 用户在界面输入手机号和密码,点击登录后,前端通过
axios或fetch构造 HTTP 请求。这里需要关注请求的 URL、Method(通常是 POST)、Headers(如Content-Type: application/json)以及 Body 中的数据格式。{ "phone_number": "13800138000", "password": "encryptedPassword123" } -
后端接收与处理 服务器监听特定路由,解析请求体。后端需执行严格的业务验证:检查手机号是否存在、密码是否匹配加密存储的密文、账户状态是否正常。验证通过后,生成 Token 并关联用户 ID,同时查询数据库获取用户信息。
-
返回响应 后端按照约定组装 JSON 响应,包含状态码、消息及用户数据(如昵称、头像、Token)。前端收到响应后,根据
code字段判断成功或失败,更新本地存储并跳转页面。
| 角色 | 职责 | API 关系 |
|---|---|---|
| 前端 | 交互与展示 | 调用方,按文档'提问' |
| 后端 | 逻辑与数据 | 提供方,定义规则与实现 |
| API | 传输协议 | 协作桥梁,规范地址与方法 |
API 安全核心:绕过前端的攻击
很多初学者认为攻击必须经过前端界面,其实不然。任何符合 HTTP/HTTPS 协议的请求包都可以被构造,这意味着攻击者完全可以跳过前端直接操作后端。
常见伪造手段:
- 直接构造请求:使用 Burp Suite 或 cURL 修改参数。例如将转账金额从 100 改为 1000000。
- 重放攻击:拦截合法请求并重复发送,若服务端无防重机制,可能导致 Token 滥用。
- 越权访问:修改参数中的
user_id,尝试访问他人数据(水平越权)或管理员接口(垂直越权)。 - 自动化攻击:脚本高频调用接口,如短信轰炸。
防御策略: 后端必须假设所有请求都不可信。实施身份认证(Token/Session 校验)、授权校验(权限检查)、参数校验(格式与业务逻辑)、速率限制(防刷)以及 HTTPS 加密传输。


