Security

視圖函式會導致重入漏洞嗎?

  • February 2, 2021

眾所周知,在更改合約中的某些內容之前呼叫外部函式會導致稱為“重入漏洞”的安全問題。

通過介面的視圖成員呼叫外部函式會導致重入漏洞嗎?

通過介面成員的呼叫view是通過STATICCALL操作碼完成的。正如我的實驗所證實的那樣,Solidity 0.6.0 確實STATICCALL在這種情況下使用。

https://github.com/ethereum/EIPs/blob/master/EIPS/eip-214.md

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

因此,目前版本的 Solidity 中不存在此類漏洞。

但是,舊版本的 Solidity容易受到攻擊。請參閱此乙太坊拉取請求以了解過去所做的更改。

有趣的是,我自己只是來尋找這個問題的答案。據我了解,不存在傳統意義上的重入漏洞,因為視圖成員無法修改狀態。

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