The-Dao

如何防禦重入攻擊

  • September 7, 2017

我研究了 DAO 攻擊。乙太坊的重入攻擊仍然有效。但乙太坊網路也仍然有效(當然,編譯器說“警告”)

你如何相信你的契約會是安全的?乙太坊如何修補這個錯誤?

以及如何在不呼叫回退功能的情況下將乙太幣發送給任何人?這是道攻擊的原因

乙太坊有好主意嗎?

我想讓你告訴我。

發送乙太時

使用address.transferor是發送乙太幣address.send的簡單且可重入安全的方式。

使用call.value了更強大但也有重入風險的 TheDAO: call.value 是什麼意思,它是如何允許對 The DAO 的攻擊的?

一般來說

當程式碼可以回調您的合約並更改狀態(例如提取乙太幣)時,可重入性是一個問題。

密切關注 Solidity 利用新操作碼STATIC_CALL(EIP 214)的通用解決方案:

為了提高智能合約的安全性,該提案添加了一個新的操作碼,可用於呼叫另一個合約(或自身),同時不允許在呼叫期間對狀態進行任何修改(及其子呼叫,如果存在)。

引用自:https://ethereum.stackexchange.com/questions/25947