CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Web 与安全入门/课时/综合练习
RawBlame
课时目录12 节

Web 与安全入门

  1. 01Web 安全概览
  2. 02OWASP 风险
  3. 03SSL/TLS
  4. 04CORS
  5. 05CSP 内容安全策略
  6. 06服务器安全
  7. 07密码哈希
  8. 08Basic 认证
  9. 09令牌认证
  10. 10Cookie 认证
  11. 11SAML 简介
  12. 12综合练习

综合练习

审查一个 Spring API 的安全清单。

40 分钟

综合练习

把本 track 串起来:审查一个 Spring REST API 的安全 posture,对照 OWASP、传输、CORS、认证与运维基线,输出可执行的 remediation 清单。目标不是「找茬表演」,而是形成 可复用的 Review 模板,与 sb-security、oauth-security 衔接。

学习目标

  • 独立完成一次后端 API 安全 walkthrough
  • 对照 sec-intro 至 sec-saml 的检查项
  • 将发现映射到具体配置或代码改动

任务说明

任选 其一:

A. 审查本站 backend(推荐)

克隆或打开 CodeRoadMap backend 模块,针对 对外 REST API(如 tracks、auth 相关)完成下方清单,记录 已满足 / 待改进 / 不适用。

B. 审查你工作中的 Spring Boot 项目

脱敏前提下(无真实密钥、hostname、客户名),对一个小模块做同样审查,写进内部 wiki 或 PR comment。

审查清单

1. 传输与边界

  • 生产是否 全程 HTTPS(sec-ssl)
  • 是否禁止 HTTP 传密码、token、Cookie 无 Secure
  • 网关 / LB 是否正确传递 X-Forwarded-Proto

2. 认证与会话

  • 密码是否 bcrypt/Argon2(sec-hash)
  • 会话 Cookie 或 JWT 配置:HttpOnly、Secure、SameSite、exp(sec-auth-cookie、sec-auth-token)
  • Basic 是否仅内网且 TLS(sec-auth-basic)
  • 若用 OAuth/OIDC,redirect、state、PKCE(oauth-flows、oauth-pkce)

3. 授权与输入

  • 敏感 API 是否 默认拒绝 + 显式放行(sec-owasp A01)
  • MyBatis/JPA 是否无 ${} 拼用户输入(A03)
  • @Valid 与统一错误响应,生产无堆栈泄露(sb-validation)
  • 4. 浏览器相关

    • CORS 是否 白名单 origin,非 * + credentials(sec-cors)
    • 若返回 HTML,是否有 CSP / nosniff(sec-csp)

    5. 服务器与依赖

    • 进程非 root、DB 最小权限、无公网 3306(sec-server)
    • actuator 暴露范围、依赖 CVE 扫描(A05、A06)
    • 日志无 Authorization、密码;有登录失败与权限变更审计(A09)

    交付格式(示例)

    ## 摘要
    - 系统:xxx API
    - 审查日期:...
    - 风险最高项:...
    
    ## 发现
    | ID | 严重度 | 发现 | 建议 | 参考课时 |
    |----|--------|------|------|----------|
    | F1 | 高 | ... | ... | sec-ssl |
    
    ## 已做得好的地方
    - ...
    
    ## 下一步(≤3 条可落地)
    1. ...
    

    可选加深

    • 用 OWASP ZAP 或 curl 对 未授权访问 做 smoke test
    • 对照 http-practice 用 DevTools 看预检与 Cookie
    • 若计划上 OAuth Resource Server,读 oauth-resource 列 gap

    反思题

    1. 哪一类问题在你的项目里 出现最多?传输、认证还是授权?
    2. 若只能先修 一项,你选什么?依据是什么?
    3. 谁对「安全默认配置」负责——框架、DevOps 还是 feature 开发者?

    与路线图

    完成后回到 全栈路线图,勾选 web-security 及认证相关节点。继续深入:

    • 框架实战 → spring-boot-essentials
    • 联邦授权 → oauth-essentials
    • 协议底层 → http-protocol-essentials

    练习

    • 完成上表 至少 20 条 checkbox 评估
    • 输出 ≥3 条 具体 remediation(含文件或配置键名)
    • 与同伴交叉 review 一份 findings(可选)

    小结

    安全审查 = 清单 + 证据 + 可落地修复;默认拒绝、HTTPS、慢哈希、最小暴露重复出现。 本 track 完结;线上安全靠持续补丁、监控与每次 PR 的纪律。

    加载本节练习…
    ← 上一课SAML 简介