安全备忘

ps:个人整理备忘

 

1.所有资产的转移,必须验证资产所有者的签名。如果没有签名,要确保所有者的资产没有减少和增加,只是兜了一圈,左口袋至有口袋。

2.资产在转移过程中不能出现小于等于0的情况。所有涉及金额的接口,要在接口处就要排除金额小于等于0的情况。

3.操作合约存储区时一定是先算需要更改的值,将需要更改的数值明确后,再进行存储区的修改,存储区的put操作要在整个运算逻辑最后处理。

4.如果一个接口涉及3个存储区的调整,要保证这3个存储的修改逻辑中间没有return,要在接口入口处就将所有可能return的情况都排除掉,然后再计算存储区应该调整的值,最后存储区统一改删。

5.如果存在跨合约调用,一定要有验证合约调用结果的逻辑。例如拍卖合约中调用了CGAS的tansfer,那一定要对调用transfer的结果(true还是false)进行不同逻辑的处理。

6.全局资产转入映射成nep5资产(cgas的mintTokens)和 利用交易id来进行资金的变更(sell合约的setmoneyin)都要记录排除已经使用的txid,以防一个txid多次套钱。

 

转载于:https://my.oschina.net/u/3869289/blog/2413743

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值