主题
总验收:用一张清单检验你真的学懂了
这份清单不是考试卷,是一面镜子。它的每一条都写成"能做什么",因为 Web 安全是一门手艺——听得懂不算会,做得出来才算。请一条一条地诚实打勾,打不上勾的地方,就是你接下来该去的地方。
💡 想要"勾完能记住"的版本?用学习进度表——那里的勾选会存在你自己浏览器里,刷新和换页都不丢。
这份清单怎么用
- 每条都从"能"字开头:能画出来、能说出来、能做出来、能写出来。看不懂原理但会抄 Payload,不算通过
- 打勾之前先做一遍,不要凭印象。印象里的"我好像会"是最贵的错觉
- 允许没通过。你应该能做到;如果你还没做过,就先去做,做完再回来打勾
- 建议每月完整过一遍,把新学会的能力补上勾,把退步的划掉
- 涉及动手的条目,全部只在你自己搭建的环境(比如 DVWA 靶场)或有书面授权的目标上进行
| 标记 | 含义 |
|---|---|
| ☑ | 能独立完成,不需要查资料 |
| ◐ | 能完成,但要一边查一边做 |
| ☐ | 还不会,或者还没试过 |
五组清单对应五个阶段
每一组都对应本站的一个阶段,也对应一件可以拿在手里的产物:
| 组 | 检验什么 | 对应阶段 | 这一组结束时你该有的产物 |
|---|---|---|---|
| 第一组 | Web 怎么工作 | 第一阶段 | 一张自己画的访问全过程草图 |
| 第二组 | 前端三件套 | 第二阶段 | 一份表单与 DOM 分析笔记 |
| 第三组 | 后端与数据库 | 第三阶段 | 一个能在本机跑起来的服务 |
| 第四组 | 工具与靶场 | 第四阶段 | 一份带 Payload 的靶场通关记录 |
| 第五组 | 综合实战 | 前四个阶段的合并 | 一份格式完整的漏洞报告 |
第一组:Web 基础
| 打勾 | 能做到才算学会 | 自测方式 |
|---|---|---|
| ☐ | 能不看书画出一次访问的全过程:输入网址 → DNS 查 IP → TCP/TLS 握手 → HTTP 请求 → 服务端处理 → HTTP 响应 → 浏览器渲染 → 资源再次请求 | 白纸画一遍,再对着 一次网页访问的完整旅程 找漏 |
| ☐ | 能用 nslookup 查出一个域名的解析结果,并说清这次查询经过了哪几层 | 在终端里跑一次,把结果抄下来逐层解释 |
| ☐ | 能用 curl -I 取回一个页面的响应头,读懂状态码和关键头部 | 随便挑一个站,说出它返回了哪些安全响应头 |
| ☐ | 能指着 F12 里的一条请求,说出它的方法、路径、Host、Cookie 和响应状态 | 打开 Network 面板,任选一条请求现场讲解 |
| ☐ | 能解释 200 / 301 / 302 / 403 / 404 / 500 分别在什么情况下出现 | 各找一个真实例子 |
| ☐ | 能说清 HTTPS 加密的是哪一段、"小锁"代表什么、证书由谁签发 | 用浏览器点开证书看一眼签发链条 |
第二组:前端三件套
| 打勾 | 能做到才算学会 | 自测方式 |
|---|---|---|
| ☐ | 能在 F12 的 Elements 面板改一个元素的文字和样式,并说清这改动为什么只影响你自己的浏览器 | 改完刷新页面,看改动是否消失并解释原因 |
| ☐ | 能读懂一个表单提交到哪个地址、用什么方法、带哪些字段 | 找一个真实登录页,把表单的 action 和字段列出来 |
| ☐ | 能说清同源策略比较的是协议、域名、端口这三样东西 | 举出"域名相同但端口不同"的一个例子 |
| ☐ | 能解释为什么"前端做的校验"不能当作安全措施 | 说明攻击者为什么不走你的页面 |
| ☐ | 能读懂一段 JavaScript 对用户输入做了什么:拼接字符串、写进 innerHTML、还是塞进 URL | 打开 JavaScript 的示例逐行读 |
| ☐ | 能指出一个 DOM 型 XSS 的触发点具体在哪一行代码 | 对照 F12 开发者工具 在 Sources 里定位 |
第三组:后端与数据库
| 打勾 | 能做到才算学会 | 自测方式 |
|---|---|---|
| ☐ | 能在自己电脑上起一个后端服务,并用浏览器访问到它返回的内容 | 现场启动一次,截图返回页面 |
| ☐ | 能在响应头里找到 Set-Cookie,并逐条说出 HttpOnly、Secure、SameSite、Path、Expires 各起什么作用 | 对着 Cookie 与会话 逐个解释 |
| ☐ | 能写出 SELECT、INSERT、UPDATE、DELETE 四类基本语句,并用 WHERE 精确筛选 | 在本地数据库里各跑一次,看到结果 |
| ☐ | 能把一段"字符串拼接的查询"改写成参数化(预编译)查询 | 拿 数据库与 SQL 里的例子改写 |
| ☐ | 能说清参数化为什么能防注入:数据和命令被分开了,输入不再被当语法解析 | 用一句话讲给不懂技术的人听 |
| ☐ | 能解释会话与 Cookie 的关系:会话状态存在哪、Cookie 里存的到底是什么 | 对照 服务端程序 画一张时序草图 |
第四组:工具与靶场
| 打勾 | 能做到才算学会 | 自测方式 |
|---|---|---|
| ☐ | 能在 DVWA 上完成至少 5 关,并为每一关记下 Payload 和回显 | 写一份自己的通关记录,含每一步做了什么 |
| ☐ | 能说清同一关在 Low / Medium / High 三档下的防护差异分别是什么 | 三档各打一次,列出代码层面的区别 |
| ☐ | 能解释 High 级别为什么在特定条件下依然会失效,也能指出哪一关在 High 确实被挡住了 | 说清"挡住的原理"和"绕过的前提" |
| ☐ | 能用 Burp 拦截一个请求、改掉一个参数、放行后看到结果不同 | 现场演示一次,前后截图对比 |
| ☐ | 能用 Repeater 对同一个请求反复微调做对比 | 用同一个 Payload 的不同变体跑三次 |
| ☐ | 能说清练习边界:只在自建靶场动手,并知道 法律红线 划在哪 | 用一段话说清"授权"意味着什么 |
第五组:综合实战
这一组没有标准答案,但有明确产物。做一次,比读十篇文章有用。
| 打勾 | 能做到才算学会 | 自测方式 |
|---|---|---|
| ☐ | 能对一个自己有书面授权的站点做一次信息收集:子域、目录、指纹、泄露文件、响应头 | 产出一份信息收集清单,每条注明来源 |
| ☐ | 能从收集结果里挑出一个可疑点,做一次手工验证,并完整保存请求与响应 | 留下可复现的原始报文,不靠记忆 |
| ☐ | 能写一份漏洞报告:标题、影响范围、复现步骤、危害说明、修复建议 | 报告能让不懂安全的人照着复现 |
| ☐ | 能在报告里给出可执行的修复建议,比如改哪一行代码、加哪个响应头,而不是写"加强安全" | 每条建议都能落到具体位置 |
| ☐ | 能对自己的测试过程做一次复盘:哪些结论有证据支撑,哪些只是猜测 | 标出证据不足的结论并说明怎么补 |
💡 动手实验 1:从第一组里挑一条你最没把握的,今天就做一遍。比如用
curl -I https://www.myxbw.cn/把自己的响应头打出来,逐条对照《常见 Web 安全响应头与加固》那篇,写下还缺哪几个头。做完立刻把这条改成 ☑ 或 ◐,别留空。
💡 动手实验 2:在 DVWA 里挑一关,把 Low 和 High 两档的源码都打开(View Source),逐行对比它们差在哪几行。把差异写成一个表格,然后回答一句:这几行代码挡住了什么、没挡住什么。做完你就会发现,"防护级别"从来不是黑盒。
💡 动手实验 3:给自己找一个有授权的练习目标(自建站、靶场、或者你自己的 myxbw.cn),完整走一遍第五组:信息收集 → 手工验证 → 写报告。哪怕最后只写出一条"响应头缺少 X-Frame-Options",也要按报告的格式写完整。报告写多了,你的眼光会变得不一样。
没通过怎么办:补课地图
打不上勾不可怕,可怕的是不知道该回哪。对着下面这张表找路:
| 卡住的条目 | 回到哪一课 | 补课动作 |
|---|---|---|
| 画不出访问全过程、说不清 DNS 与状态码 | 一次网页访问的完整旅程、域名、DNS 与部署 | 白纸重画三次,再对真实站点跑一遍 nslookup |
| 看不懂请求头响应头、不会用 curl 验证 | HTTP 请求与响应 | 每天挑一个站,打印它的响应头并解释其中三行 |
| 改不了 DOM、说不清同源策略 | HTML、F12 开发者工具 | 打开任意页面,改三个元素的文本和样式并说明作用范围 |
| 读不懂表单提交到哪、看不出 XSS 触发点 | HTML、JavaScript | 手写一个带表单的小页面,再写一个反射型 XSS 复现它 |
| 起不了服务、看不懂 Cookie 属性 | 服务端程序、Cookie 与会话 | 本地起一个最小服务,手动设置一次 Cookie 并观察属性 |
| 写不出基本 SQL、不会改写参数化查询 | 数据库与 SQL | 建一张三行数据的表,把拼接查询和参数化查询各写一遍 |
| 不会用 Burp 改包、复现不了靶场关卡 | Burp Suite、DVWA 靶场 | 从最简单的一关重做,每一步都截图记录 |
| 说不清练习边界、不敢确认授权 | 法律红线 | 反复读一遍,用一句话写下"我什么时候必须停下来" |
| 会打靶场,但写不出报告 | 总验收清单 第五组 + 重读 重读知识库 | 拿一条最小发现练手,按四段式写完整报告 |
补课顺序要和阅读顺序一致:先补基础课,再回到 重读知识库 读对应文章。 跳过基础直接背 Payload,下次换个场景你还是不会。
把它变成长期习惯
验收不是一次性事件,而是每月一次的体检:
- 每月自测一次:把这份清单从头过一遍,重点看那些上个月是 ◐ 的条目有没有变成 ☑
- 每次只补一条规律:这个月新学的漏洞,按"原理 / 复现条件 / 修复方案"三段式写进 myxbw.cn
- 每季度更新一次知识库结构:文章多了以后,按攻击面分类(注入类、文件类、身份类、配置类),别让知识库变成一堆散装笔记
- 每次真实遇到一个漏洞,都回头补充:这篇报告的哪一条结论,是我以前在靶场里练过的?
- 保持边界感:能力越强,越要知道授权线在哪,这条永远放在习惯清单的第一位
小结
- 学会的标准只有一条:能画、能说、能复现、能修、能写
- 五组清单对应五个阶段,哪一组打不上勾,就回那一组补课,再回来重读对应文章
- 第五组是终点也是起点:一次完整的信息收集、一次手工验证、一份漏洞报告
- 每月自测一遍,把新学的东西继续沉淀回你的知识库——你的知识库就是你的成绩单
到这里,本站的五阶段就走完了。剩下的路只有一个方向:继续动手,继续记录,继续把你的理解写成别人也能看懂的文章。