重入攻擊

更新時間 2026年9月24日

一句話總結

重入攻擊在先前操作尚未安全完成狀態更新時,利用回呼再次進入合約。

定義

重入攻擊利用未完成操作中的再次進入。合約呼叫外部程式後,對方可能在返回前回呼;若原合約狀態尚未一致,便可能破壞帳務或授權規則。

運作方式

例如提款先與外部互動,後才扣除餘額,回呼可能讀到舊餘額並重複原本只允許一次的行為。重入可跨函式或合約,也可能利用不一致讀取。不是所有回呼都有害,問題在於對外部控制的錯誤假設。

注意事項

防護包括合理安排檢查與狀態更新、重入鎖、限制外部互動及維持不變條件。不能只依賴單一模式,須檢查跨函式、代幣回呼與相依合約。熟悉介面或審計標章不保證安全;事件處理須檢查實際部署程式,修正狀態假設,而不只是封鎖一個呼叫者。