重入攻击(Reentrancy)是一种智能合约安全漏洞,攻击者通过在外部调用期间重新进入同一合约来操纵状态,导致同一笔资金被多次提取。
// VULNERABLE: External call BEFORE state update function withdraw() external { uint256 amount = balances[msg.sender]; (bool success,) = msg.sender.call{value: amount}(""); balances[msg.sender] = 0; // State updated AFTER external call }