实战指南
/
Feb 09, 2026
Step 8 08. 安全审计:如何防止合约被黑
<!-- Title: 08. 安全审计:如何防止合约被黑 -->
<!-- Series: Web3 DApp 开发实战 (ID: 13) -->
<!-- Author: admin -->
# 安全审计:如何防止合约被黑
## 1. 黑暗森林
Web3 是黑客的提款机。
一旦代码有漏洞,钱瞬间就没了,且无法追回。
**安全是 Web3 的生命线。**
## 2. 常见漏洞 Top 3
### 重入攻击 (Reentrancy)
The DAO 事件的元凶。
攻击者在合约转账还没更新余额时,递归调用提款函数,把钱提空。
**防御**:使用 `nonReentrant` 修饰符(OpenZeppelin),或遵循“检查-生效-交互”模式。
### 溢出 (Overflow)
在 Solidity 0.8 之前,`uint8(255) + 1` 会变成 0。
**防御**:Solidity 0.8+ 已内置检查。
### 权限控制失效
忘记给关键函数加 `onlyOwner`。
导致任何人都可以调用 `setOwner` 把合约据为己有。
## 3. 审计流程
1. **静态分析**:使用工具(Slither, Mythril)自动扫描。
2. **单元测试**:覆盖率必须 100%。测试所有边缘情况。
3. **人工审计**:聘请专业审计公司(CertiK, SlowMist)。费用昂贵但必要。
## 4. 结语
敬畏代码。
在 Web3,**Code is Money**。
写每一行代码时,都要假设全世界最聪明的黑客正在盯着你。
P
潘卫
南京市沉思波网络科技有限责任公司创始人、CEO
您的观点 (可选)
🎁 注册账号,同步您的个性化学习路径