以下是 C++ 代码安全性口诀,涵盖了常见的安全编程实践和最佳实践壮的代码:
1. 内存管理
能使用引用,就不使用指针
引用天然非空,避免空指针问题。
能使用智能指针,就不使用裸指针
`std::unique_ptr` 和 `std::shared_ptr` 自动管理内存,避免内存泄漏。
能使用容器,就不使用动态数组
`std::vector`、`std::array` 等容器比手动管理动态数组更安全。
能使用栈内存,就不使用堆内存
栈内存自动释放,避免内存泄漏。
2. 资源管理
RAII 是核心
资源获取即初始化(RAII),利用构造函数和析构函数管理资源。
能使用标准库,就不手写实现
标准库经过充分测试,避免手写代码引入漏洞。
能使用范围锁,就不手动加锁
`std::lock_guard` 和 `std::unique_lock` 自动管理锁,避免死锁。
3. 类型安全
能使用强类型,就不使用弱类型
使用 `enum class` 代替普通枚举,避免隐式类型转换。
能使用 `const`,就不使用变量
`const` 防止意外修改,增强代码可读性和安全性。
能使用 `static_assert`,就不使用运行时检查
编译时检查比运行时检查更安全、更高效。
4. 输入与输出