💡
原文英文,约300词,阅读约需1分钟。
📝
内容提要
重入攻击是指攻击者在智能合约未完成数据更新时,多次调用同一函数,从而窃取ETH或改变合约行为。此类攻击通常因外部调用后的状态更新或信任用户输入而发生。为防止重入攻击,应采用“检查-效果-交互”模式,并使用锁定变量或OpenZeppelin的ReentrancyGuard库。
🎯
关键要点
- 重入攻击是指攻击者在智能合约未完成数据更新时,多次调用同一函数,从而窃取ETH或改变合约行为。
- 重入攻击通常因外部调用后的状态更新或信任用户输入而发生。
- 智能合约可以通过可支付函数、回退函数和接收函数三种方式接收ETH。
- 如果在发送ETH后进行状态更新,可能会导致重入攻击。
- 应采用“检查-效果-交互”模式来防止重入攻击。
- 在函数中添加“锁定”变量以防止重入。
- 可以使用OpenZeppelin的ReentrancyGuard库来简化重入防护。
- 避免在外部调用后更新合约状态,先验证条件,再更新状态,最后进行交互。
🏷️
标签
➡️