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综合练习

服务器安全

最小权限、补丁、防火墙。

30 分钟

服务器安全

Spring Boot 写得再规范,跑在 弱口令 SSH、全开防火墙、从不打补丁 的机器上仍会整体沦陷。服务器安全是 最小权限、及时补丁、网络隔离、可观测 的组合——后端工程师至少能 部署自己的 JAR 而不扩大攻击面。

学习目标

  • 应用 最小权限 原则到 OS 用户、DB 账号、云 IAM
  • 列出生产主机 必须关闭或保护 的入口
  • 将补丁与日志习惯与 spring-boot-essentials 部署流程衔接

最小权限(Least Privilege)

层级坏实践好实践
OSroot 跑 Java 进程专用 app 用户,无 shell 登录
DB应用用 root仅 GRANT 所需表的 CRUD
云 IAM开发密钥 AdminCI 只读 ECR + 部署单一服务
文件配置 777keystore、.env 600,属主 app

Spring application.yml 里 数据库密码 用环境变量注入(见 sb-config),与 OS 权限 同一纪律。

网络与防火墙

Internet → 443 (LB/Nginx) → 8080 (内网 Spring Boot)
          ✗ 禁止公网直连 8080、3306、6379
  • 仅暴露必要端口:HTTPS、必要时 SSH(改端口 + 密钥登录)
  • 管理口:VPN 或堡垒机,禁止 0.0.0.0/0 SSH
  • 容器:Kubernetes NetworkPolicy 限制 Pod 间访问

API 层的 CORS 与 TLS 不能替代 网络 ACL。

补丁与依赖

两类补丁都要管:

  1. OS / 内核:unattended-upgrades 或云镜像定期更新
  2. 应用依赖:Maven/Gradle 锁版本 + CI 跑 OWASP Dependency-Check / Dependabot

Log4Shell 类事件说明:运行时 RCE 往往来自依赖,不是业务代码一行行写错。合并 PR 前看 是否有 CVE。

secrets 与配置

  • .env、kube Secret、云 Secret Manager——不进 Git
  • 轮换:DB 密码、JWT signing key、第三方 API key 有 过期与撤销流程
  • 日志:禁止 打印完整 Authorization 头、密码字段(Logback 脱敏)

与 sec-hash、 直接相关。

sec-auth-token

可观测与 incident

信号用途
登录失败次数暴力破解
4xx/5xx 突增扫描或 bug
磁盘 / CPU挖矿、泄漏
审计日志谁改了权限、导了数据

没有日志 = OWASP A09。Spring Actuator + Prometheus 或云监控,alert 要 有人值班响应,不是只存指标。

容器与 JVM 补充

  • Docker:非 root 用户、readOnlyRootFilesystem where possible
  • JVM:不要 为了「方便」开 JMX 公网
  • 临时文件:上传目录 不可执行,防 webshell(若同机有 Web 服务)

部署 checklist(生产)

  • 进程非 root;仅监听内网或 behind LB
  • TLS 在边界终止或全程 HTTPS
  • DB/Redis 无公网 IP
  • actuator 仅 health 或内网
  • 自动安全更新或定期维护窗口
  • 备份加密 + 恢复演练

练习

  • 画你当前环境的网络拓扑:哪些端口对公网开放?
  • 查 Spring Boot 版本 release notes 中 Security 相关修复一条
  • 列出应用连接的所有外部服务(DB、Redis、OAuth),各用什么身份凭证

小结

服务器安全 = 少暴露 + 弱权限 + 快补丁 + 看得见。 下一课密码存储:哈希、加盐与常见算法选型。

加载本节练习…
← 上一课CSP 内容安全策略下一课 →密码哈希