区块链研究实验室-探讨一下以太坊智能合约安全的漏洞(下)( 四 )
最后 , 有调用堆栈深度限制 。 EVM的调用堆栈的硬限制为1024.这意味着如果嵌套调用的数量达到1024 , 则合同将失败 。 攻击者可以递归调用1023次合同 , 然后调用我们的合同函数 , 导致发送默认失败 , 因为这个限制 。 PullPayment.sol如上所述 , 并允许轻松实现拉动支付 。 继承PullPayment并使用asyncSend可以保护您免受此攻击 。
更新:EIP150解决了这个问题 , 通过减少每个递归调用获得的气体量来消除调用堆栈攻击的可能性 。
以下是修复所有这些问题的代码的修改版本:
总而言之 , 请务必记住(1)您使用的类型的限制 , (2)合同的gas费用限制 , 以及(3)调用堆栈深度限制 。
推荐阅读
- gta三部曲|梦幻西游:129级五开分析师,研究抓鬼任务最优化投入,不浪费一分钱
- 电子竞技|S12或迎来双败制?Riot全球电竞负责人发话:会去仔细研究!
- 世界弹射物语|皇室战争:职业选手研究的英雄卡组,要论机动性,黄金圣骑YYDS
- 新世界|游戏推出一个多月就在研究合服,《新世界》如今情况如何?
- fly|Fly让AG得重新研究对策,终结ES八连胜!留在S组只差AG这一步
- 弈星|职业赛场八连跪,弈星已经被研究透了?这英雄的强度到底如何?
- 原神|原神成为中国文化敲门砖,这群老外甚至因北斗研究起了国产导航
- 鲁班|王者荣耀:将王研究出鲁班发育秘诀,网友看后纷纷点赞!
- 青钢影|《地下城与勇士》:玩这个游戏,要花时间研究一下活动和成长路线
- 手机游戏|哈利波特手游:虎牙四个四深入研究,配置斯内普卡组,只为榜一