美文网首页
EOS中常用的攻击方式

EOS中常用的攻击方式

作者: liuchungui | 来源:发表于2018-11-21 23:48 被阅读0次

所谓,知道别人所犯的错误,才能更好的避免犯错。下面是最近一段时间,Dapp被攻击所暴露出来的问题。

1、未检查 code == eosio.token

在EOS链上,任何人都可以发任何名称的币,也就是说黑客也可以创建EOS,然后转给你换取真的币,这也就是所谓假币攻击。所以,在合约中接收币的时候,还需要判断来源,官方EOS来源就是eosio.token。

2、转账通知,未判断 to == _self

此前,我在测试的时候,发现别人的转账,自己是接收不到的。然后,在有些代码中漏掉了此处判断。后来,在查看EOS安全相关内容,才知道原来合约是可以设置接收人的,也就是说某个攻击合约接收到EOS时,然后通知你,你没有加上这句判断的话,那就会当做是某个人转EOS过来了。发现这个问题后,背后冷汗直流,赶紧检查了下,然后修复了这个BUG。

3、伪随机数

伪随机数被攻破,这是遇到安全事故最多的原因。因为,在EOS上,并不能产生真正的随机数,都是可以计算或者确定的数值,所以会被黑客预测出来。此时如何办?可以在服务器端,自己去取多个无法预测的随机种子来进行随机数的生成,不要使用确定的随机种子,也不要只使用时间戳做随机种子。

4、重放攻击

重放攻击就是黑客可以写一个合约来玩你的游戏,若是胜了,它就接收你的结果,若是失败了,就拒绝你的结果,导致整个交易失败。然后,让你的合约重新产生结果。这样,就能保证它100%胜率。

面对这种攻击,receipt之类的通知,可以采用异步的。同时,要保证失败了之后,下次产生的结果仍然是一样的。

参考

智能合约攻击方式汇总| 是黑客太强了还是EOS太弱了?

相关文章

网友评论

      本文标题:EOS中常用的攻击方式

      本文链接:https://www.haomeiwen.com/subject/puahqqtx.html