安全编程

《安全编程》不仅是一门技术课程,更是一门培养“安全守护者”的课程。它赋予你的,不仅仅是找到一份好工作的能力,更是创造出能够抵御恶意世界冲击的、值得信赖的软件产品的能力。

分类:

描述

一、课程背景

在数字化和智能化加速发展的时代背景下,软件已深度融入经济社会各个领域,成为关键基础设施的核心组成部分。然而,随着软件复杂度的不断提升和网络攻击手段的日益演进,安全漏洞引发的数据泄露、服务中断、财产损失等安全事件频发,软件安全已成为数字经济健康发展的关键保障。

传统编程教育往往注重功能实现和性能优化,而忽视了安全性这一基础要求。大量开发人员在缺乏系统化安全训练的情况下编写代码,导致“漏洞早于功能诞生”的普遍现象。从OWASP十大Web漏洞到供应链攻击,从内存安全漏洞到逻辑缺陷,安全风险贯穿软件开发生命周期的各个环节。

本课程直面当前软件安全领域的严峻挑战,以“安全左移”和“安全内生”为核心理念,系统构建从安全意识到安全实践的全方位能力体系。课程不仅涵盖常见漏洞原理与防护技术,更深入探讨安全设计模式、安全开发流程和自动化安全工具链,致力于培养符合数字化时代要求的安全型软件开发人才。

二、课程目标

1.知识理解层面:

掌握软件安全的基本概念、原则和安全开发生命周期(SDLC)框架

深入理解常见安全漏洞(如注入、XSS、CSRF、逻辑漏洞等)的产生原理和危害

熟悉主流安全编码规范(如CERT、OWASP)和安全设计模式

2.技能实践层面:

能够识别和修复常见代码安全漏洞

掌握静态应用安全测试(SAST)、动态应用安全测试(DAST)等安全工具的使用

具备安全需求分析、威胁建模和安全测试用例设计能力

能够将安全控制措施集成到CI/CD流水线中

3.思维方法层面:

建立“安全优先”的编程思维和纵深防御的安全意识

培养从攻击者视角分析系统脆弱性的逆向思维能力

形成持续安全改进和主动安全学习的习惯

三、学员收益

1.职业能力提升:

掌握企业级安全开发所需的完整技能栈,显著增强就业竞争力

获得在实际项目中实施安全开发流程的实践经验

具备担任团队安全专员或安全代码审核角色的基础能力

2.项目安全保障:

能够从设计阶段开始构建安全防护体系,降低后期修复成本

掌握自动化安全测试和漏洞管理的方法,提升项目整体安全水位

具备应对常见安全威胁的快速响应和修复能力

3.专业认证基础:

为考取CSSLP(注册软件安全生命周期专家)、GWEB(Web防御专家)等国际安全认证奠定基础

积累参与漏洞众测或安全众包项目的实战经验

4.终身学习价值:

建立适应安全技术快速演进的学习框架和方法论

加入安全开发社区,持续获取最新安全威胁情报和防护技术

培养在新技术场景(如云原生、AI应用)中识别和应对新型安全风险的能力

课程大纲

第1章:安全编程导论:构建数字世界的免疫系统
1.1 什么是安全编程?从功能正确到安全可信的思维转变
1.2 安全漏洞的代价:历史重大安全事故剖析(如心脏滴血、Equifax事件)
1.3 安全开发生命周期(SDLC)与安全左移理念
1.4 安全编程的核心原则:最小权限、纵深防御、不信任输入

第2章:内存安全漏洞与防范
2.1 缓冲区溢出:原理、攻击方式(栈溢出、堆溢出)与经典案例
2.2 整数溢出与环绕:类型混淆与边界计算错误
2.3 格式化字符串漏洞:信息泄露与内存篡改
2.4 防范策略:安全函数使用、编译器加固技术(ASLR, DEP, Canary)

第3章:输入验证与注入攻击防御
3.1 注入攻击范式:一切不受信输入都是攻击向量
3.2 SQL注入:原理、攻击手法(联合查询、盲注)与自动化工具
3.3 命令注入与OS命令执行漏洞
3.4 跨站脚本(XSS):反射型、存储型与DOM型XSS详解
3.5 防御之道:参数化查询、输入白名单、输出编码

第4章:身份认证、会话管理与访问控制
4.1 身份认证机制:密码学哈希、加盐、多因素认证(MFA)
4.2 会话管理安全:会话固定、劫持与安全的令牌设计
4.3 常见的访问控制缺陷:水平越权与垂直越权
4.4 OAuth 2.0与OpenID Connect的安全实践与常见误区

第5章:密码学安全实践与常见误用
5.1 密码学基础:对称加密、非对称加密与哈希函数
5.2 随机数的安全生成:为什么rand()是危险的
5.3 存储密码的正确方式与密钥管理最佳实践
5.4 TLS/SSL安全配置与常见漏洞(如心脏滴血)