阶段十 · 课程学习指南
本阶段按「Web 安全 → 密码学 → 认证授权 → 测试体系 → 自动化测试 → 攻防对抗」组织。★ 为必学主干。
一、Web 安全
1. Web 安全攻防实战 ★(第一门,攻防入门)
为什么学:这是进入安全领域的最佳入口。它以「攻」带「防」:亲手打一遍经典漏洞(XSS、SQL 注入、CSRF、文件上传、越权),再学怎么防。懂攻击的人,才写得出安全的代码。
知识地图:
- OWASP Top 10 漏洞全景
- XSS:反射型/存储型/DOM 型,防御(转义、CSP、HttpOnly)
- SQL 注入:原理、绕过,防御(预编译、白名单)
- CSRF:原理(跨站伪造请求),防御(Token、SameSite)
- 文件上传漏洞与防御
- 越权(水平/垂直)与权限校验
- 点击劫持、SSRF、反序列化漏洞
- 安全开发最佳实践
经典案例:小白问「为什么一定要用预编译(PreparedStatement)而不是拼接 SQL?」老师现场演示:「用户输入 ' OR '1'='1,拼接后变成 SELECT * FROM users WHERE name='' OR '1'='1'——恒为真,整个表被查出来。而预编译把『结构』和『数据』分开,输入永远只是数据,不可能变成命令。记住安全的第一性原理:永远别把用户输入拼进代码里当命令执行。」
引发思考:
- XSS 和 CSRF 的区别?一个是「往你的网站注入脚本」,一个是「借你的身份发请求」——各自怎么防?
- 为什么「前端校验密码强度」不能替代「后端校验」?(前端校验只是用户体验)
- 你会怎么设计一���「输入校验」的防线?(白名单 > 黑名单,编码 > 过滤)
- 找找你的项目里,有没有「把用户输入直接拼 SQL / 拼 HTML / 拼命令」的地方?
2. Web 漏洞挖掘实战(选学,进阶攻防)
为什么学:从「防守」转向「攻击视角的漏洞挖掘」——学会像黑客一样审计代码、分析接口、找逻辑漏洞。适合想走安全方向或做安全测试的人。
知识地图:
- 漏洞挖掘方法论:信息收集 → 攻击面分析 → 漏洞验证
- 业务逻辑漏洞(越权、支付金额篡改、验证码绕过)
- 接口安全(未授权访问、参数篡改)
- 代码审计入门
- 常见漏洞利用与验证
- 漏洞报告撰写
经典案例:小白问「逻辑漏洞是什么?」老师:「技术漏洞(注入、XSS)是『代码写错了』,逻辑漏洞是『业务设计有洞』——比如:改价格提交订单、换个 user_id 看别人的订单、负数购买(把数量改成 -1 让金额变负)、越权改别人的资料。这类漏洞技术含量不高但危害巨大,而且工具扫不出来,只能靠『站在业务角度想坏主意』。」
引发思考:
- 为什么说「逻辑漏洞比技术漏洞更难防」?(依赖业务理解,没有通用补丁)
- 你会怎么测试一个订单接口的安全?(金额篡改?数量负数?并发重复提交?)
- 发现一个漏洞,负责任的报告应该包含什么?(复现步骤、影响范围、修复建议)
二、密码学
3. 实用密码学 ★(必学,密码学常识)
为什么学:密码学是安全的基石——HTTPS、登录、支付、区块链全靠它。这门课把「对称加密、非对称加密、哈希、数字签名、证书」讲得明明白白,让你不再「看到 HTTPS 只知道它加密了」。
知识地图:
- 对称加密:AES——同一个钥匙加密解密(快)
- 非对称加密:RSA、ECC——公钥私钥(慢但安全分发)
- 哈希函数:MD5/SHA——不可逆、防篡改
- 数字签名与数字证书(CA)
- HTTPS 握手流程(TLS)
- 密码学应用:密码存储(加盐哈希)、Token、区块链
经典案例:小白问「HTTPS 到底怎么加密的?」老师画流程:「① 服务器把公钥 + 证书发给浏览器;② 浏览器验证证书(CA 签名);③ 浏览器生成一个随机对称密钥,用服务器���公钥加密后发给服务器;④ 之后双方用这个对称密钥通信(快)。这就是『非对称加密传钥匙,对称加密传数据』——兼顾安全和速度。你看,一个 HTTPS 握手,对称加密、非对称加密、数字证书全用上了。」
引发思考:
- 为什么密码不能用 MD5 直接存?(彩虹表)正确做法?(加盐 + 慢哈希如 bcrypt)
- 对称加密和非对称加密各自的优缺点?为什么不能只用非对称?
- 「中间人攻击」是怎么发生的?证书体系怎么防住它?
- 为什么说「永远不要自己发明加密算法」?(专业的人 + 审计过的算法才可靠)
三、认证授权
4. OAuth 2.0 实战课 ★(必学,授权协议)
为什么学:「微信登录」「QQ 登录」「第三方应用授权」背后全是 OAuth 2.0。它是互联网授权的行业标准,也是面试高频题。学它,你理解「授权码、令牌、刷新」这套机制,能安全地接入第三方登录。
知识地图:
- 认证(你是谁)vs 授权(你能干什么)
- OAuth 2.0 的角色:资源所有者、客户端、授权服务器、资源服务器
- 四种授权模式:授权码(最常用)、隐式、客户端凭证、密码模式
- Access Token 与 Refresh Token
- JWT 与 Token 的对比
- 常见实现(Spring Security OAuth、微信/QQ 接入)
- 安全最佳实践
经典案例:小白问「为什么第三方登录流程那么复杂?」老师:「因为要保证『不泄露密码』——你的密码只给微信,不给第三方网站。流程:你在第三方网站点『微信登录』→ 跳转微信 → 微信问『同意授权吗』→ 你同意 → 微信发一个『授权码』给第三方 → 第三方拿授权码换『令牌』→ 用令牌查你的信息。核心思想:授权码只在服务器间传输,不经过浏览器,令牌有有效期,可随时吊销。」
引发思考:
- 为什么推荐「授权码模式」而不是直接把 Token 给前端?(Token 暴露面越小越安全)
- Access Token 为什么要过期?Refresh Token 的作用?
- JWT 和 Session 的优缺点?JWT 为什么不能随便存敏感信息?(可解base64)
- 你接入过第三方登录吗?踩过什么坑?(回调地址、状态参数 state 防 CSRF)
四、测试体系
5. 软件测试 52 讲 ★(必学,测试方法论)
为什么学:测试不是「测试工程师的事」,是「工程质量的第一道关」。这门课讲透测试方法论——测试金字塔、用��设计、单元测试、集成测试、端到端测试、测试左移右移,让你写出「可信赖」的代码。
知识地图:
- 测试的价值与成本曲线(bug 越晚发现越贵)
- 测试金字塔:单元测试(多)→ 服务测试 → E2E 测试(少)
- 用例设计:等价类、边界值、场景法、判定表
- 单元测试与 TDD(测试驱动开发)
- 集成测试与契约测试
- 性能测试、安全测试、兼容性测试
- 测试左移/右移、测试自动化体系
经典案例:小白觉得写测试浪费时间,老师让他看一组数据:「一个 bug 在开发阶段发现,修 10 分钟;到测试阶段发现,修 1 小时;上线后被用户发现,修 1 天 + 道歉 + 口碑损失。测试不是『找茬』,是『用最小的成本把错误拦截在最早的地方』。测试金字塔就是答案:多写快的单元测试,少写慢的端到端测试。」
引发思考:
- 边界值法:测试「年龄 18~60」,你会测哪些值?(17/18/60/61……)为什么边界最容易出 bug?
- 为什么「没有测试的代码重构是危险的」?(回归风险)
- TDD(先写测试再写代码)的价值和难点?你愿意尝试吗?
- 什么样的测试是「坏测试」?(测实现细节、不稳定、永远通过的测试)
6. 程序员的测试课(选学,开发视角测试)
为什么学:这门课站在「程序员视角」讲测试——怎么写好单测、怎么测遗留代码、怎么设计可测试的代码,把「测试能力」变成你的工程习惯。
知识地图:
- 可测试性的代码设计(依赖注入、接口隔离)
- 单元测试最佳实践(Mock、隔离、命名)
- 测试遗留代码(表征测试、依赖反转)
- 测试金字塔实践
- 覆盖率的意义与陷阱(100% 覆盖 ≠ 高质量)
经典案例:小白说「我的代码没法测试,因为连了数据库」。老师:「说明你的代码『依赖太重』——测试性差的代码,通常设计也差。把数据库访问抽成接口,测试时注入 Mock,业务逻辑就能独立测。可测试性,是衡量代码设计质量的标尺。」
引发思考:
- Mock 和真实依赖的区别?什么时候该 Mock?(外部依赖、慢、不稳定)
- 覆盖率 100% 就代表没 bug 吗?(覆盖 ≠ 断言有效)
- 你会怎么说服同事「补测试」?(先挑核心模块,用 bug 案例说话)
五、自动化测试
7. 自动化测试高手课 ★(必学,自动化体系)
为什么学:手工回归测试又慢又累,自动化是必然。这门课讲自动化测试体系——Web UI 自动化、接口自动化、移动端自动化、持续集成集成、测试数据管理,帮你建立「自动化测试工程」的完整认知。
知识地图:
- 自动化测试的 ROI 分析(什么该自动化、什么不值得)
- Web UI 自动化:Selenium、Playwright、元素定位策略
- 接口自动化:RestAssured / requests、断言、数据驱动
- Page Object 模式(PO 模式)设计
- 移动端自动化:Appium
- 自动化测试的稳定性(等待策略、重试、报告)
- 与 CI/CD 集成(流水线里跑测试)
经典案例:小白写 UI 自动化,测试老是「时好时坏」。老师:「90% 的 UI 自动化不稳定,是『等待』问题——页面元素没加载完就去点击了。正确姿势:显式等待(等元素出现/可点击)+ 等待超时 + 失败重试 + 截图留档。自动化测试的难点不是写脚本,是『让脚本稳定地跑』。」
引发思考:
- UI 自动化、接口自动化、单元测试,应该按什么比例投入?(金字塔)
- Page Object 模式解决了什么问题?(页面变化只改一处)
- 你的项目里,哪条流程最值得自动化?(回归频繁?人工易错?)
8. Selenium 自动化测试实战 / 移动端自动化测试实战(选学,专项工具)
为什么学:Selenium 是 Web 自动化的行业标准;移动端自动化(Appium)是 App 测试的标配。按你的方向选一门前端测试专精。
知识地图(Selenium):
- Selenium 家族:WebDriver、Grid
- 元素定位(id/class/xpath/css)
- 常用操作:点击、输入、下拉、弹窗、上传
- 等待机制与断言
- 数据驱动与关键字驱动
- 集成 pytest/unittest、生成报告
知识地图(移动端):
- Appium 原理与环境搭建
- 元素定位与操作
- 手势、滑动、截图
- 真机/模拟器测试
- 与 CI 集成
经典案例:小白问「xpath 和 css 定位选哪个?」老师:「能用 id/name 优先,其次 css(比 xpath 快且简洁),最后才 xpath。定位策略是 UI 自动化的基本功——定位不稳,脚本全崩。另外记住:测试脚本也是代码,要维护、要 review、要重构。」
引发思考:
- 元素定位不到时,你怎么排查?(iframe?动态 id?隐藏元素?)
- 前端改版后,你的自动化脚本为什么全挂?怎么降低维护成本?
- 移动端测试和 Web 测试有什么本质区别?(设备多样性、手势、性能)
六、攻防对抗
9. 反爬虫兵法演绎 20 讲(选学,爬虫与反爬)
为什么学:爬虫与反爬是「攻防」的商业化缩影——数据是资产,反爬是保护资产。这门课讲反爬的完整体系:请求校验、行为分析、验证码、风控、对抗策略,让你理解「数据安全」在实战中长什么样。
知识地图:
- 反爬体系:请求层、行为层、数据层、风控层
- 常见反爬:UA 校验、频率限制、IP 封禁、JS 加密、验证码
- 反爬对抗:代理池、指纹伪装、行为模拟
- 验证码:图形/滑块/点选,与 AI 识别
- 风控与数据保护(合规红线)
- 反爬的平衡:用户体验 vs 数据安全
经典案例:小白问「为什么反爬这么难做?」老师:「因为『真用户』和『爬虫』没有绝对边界——真用户也可能频繁刷新,爬虫也可能模拟得和真人一样。所以反爬是『多维度评分』:频率 + 行为轨迹 + 设备指纹 + IP 信誉,综合打分,可疑就上验证码。而且反爬要留一条缝:别把搜索引擎的爬虫也封了。记住合规:爬别人的数据要遵守 robots 协议和法律法规,别踩线。」
引发思考:
- 反爬设计的「三层防线」(请求校验/行为分析/风控)各防什么类型的爬虫?
- 验证码为什么是最后手段?(用户体验代价高)
- 合规视角:什么数据能爬、什么不能?(个人信息、平台核心资产、robots 协议)
本阶段小结
学完阶段十,你具备了「质量 + 安全」双保险:
- 懂安全:XSS、SQL 注入、CSRF 信手拈来,写代码有「攻防思维」;
- 懂密码学:加密、哈希、证书、HTTPS 不再黑盒;
- 懂认证授权:OAuth 2.0 能讲清、能接入;
- 懂测试:测试金字塔、用例设计、TDD 有实践;
- 会自动化:UI/接口/移动端自动化体系能落地。
现在,你不仅「做得出系统」,还「守得住系统」。最后一课,从「技术高手」走向「职场高手」。
下一站:
11_阶段十一_产品管理与软技能/。