010、安全开发篇(一):语法规范风格
返回:安全开发篇(一)目录 · 上一篇:009、控制台指令
对应视频:1.9 基础-语法规范风格.mp4
1、学习目标
这一节整理代码风格。代码风格不决定程序能不能编译,但会影响能不能长期维护、能不能快速审计、能不能定位安全问题。
需要掌握:
- 缩进统一;
- 命名清楚;
- 括号风格统一;
- 空行分隔逻辑;
- 注释解释原因和边界;
- 安全相关代码要主动暴露风险点。
2、基本规范
| 项目 | 建议 |
|---|---|
| 缩进 | 同一项目统一 4 空格或 Tab,不混用 |
| 命名 | 变量名表达含义,不用 a1、tmp2 到处乱飞 |
| 括号 | {} 风格统一,嵌套层级清楚 |
| 空行 | 用空行分隔逻辑块,不要整篇挤在一起 |
| 注释 | 解释原因、边界和坑点,不重复代码表面意思 |
| 函数 | 一个函数只做相对清楚的一件事 |
代码规范不是为了好看,而是为了降低理解成本。能快速读懂的代码,才更容易被调试、审计和修复。
3、较乱的写法
1 |
|
这段代码能运行,但不适合复盘:
- 头文件和函数之间没有空行;
- 所有语句挤在一行;
- 变量名没有语义;
- 输出缺少说明和换行;
- 后续加断点不方便。
4、更适合复盘的写法
1 |
|
改进点:
- 结构清楚;
- 变量名表达含义;
- 输出可读;
- 每行语句便于断点调试;
- 后续扩展更容易。
5、安全开发中的命名习惯
安全相关代码要让风险点尽量清楚。
| 命名 | 含义 |
|---|---|
buffer_size |
缓冲区大小 |
input_len |
输入长度 |
is_valid |
校验是否通过 |
has_error |
是否出现错误 |
max_retry |
最大重试次数 |
file_path |
文件路径 |
不推荐把关键变量写成 a、b、p、buf2 一类难以判断用途的名字,除非它们只在极短范围内使用。
6、边界要写清楚
1 |
|
安全开发里,数组大小、字符串结束符、输入长度、返回值检查都应该在代码结构和注释里尽量清晰。
7、最小复盘代码
1 |
|
这一章结束时,至少应该能独立写出这类小程序,并说清楚每一部分的作用。
8、学习检查清单
| 检查项 | 状态 |
|---|---|
| 能安装并打开 Visual Studio 的 C++ 桌面开发环境 | 待复盘 |
能新建控制台项目并添加 .c 文件 |
待复盘 |
能写出 Hello World 并解释每一行 |
待复盘 |
| 能区分注释、预处理指令、函数和语句 | 待复盘 |
能写一个普通函数并在 main 中调用它 |
待复盘 |
能使用 Ctrl + F5、断点或命令行观察运行结果 |
待复盘 |
| 能把代码整理成统一缩进和命名风格 | 待复盘 |
9、复盘题
9.1 代码风格会影响程序运行结果吗?
通常不会直接影响运行结果,但会影响阅读、调试、审计和维护成本。风格混乱的代码更容易藏住错误。
9.2 为什么安全相关变量要命名清楚?
因为安全问题常常出现在边界、长度、指针、状态和返回值上。变量名清楚,可以更快发现输入长度未检查、缓冲区大小不匹配、错误状态被忽略等问题。
9.3 注释应该重点记录哪些内容?
重点记录设计原因、边界条件、安全风险、实验观察和临时写法。不要只重复代码表面意思。
这一节的结论:规范不是形式主义。对安全开发来说,清楚的代码结构本身就是降低风险的一部分。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!


