创作人 Leo
编辑时间 Fri Jul 29,2022 at 19:47
Function Default Visibility
未设置函数权限,默认 public,导致攻击者可以任意执行代码
Integer Overflow and Underflow
数值计算溢出
使用 SafeMath 库解决
Outdated Compiler Version
使用过期 solidity 版本
Unencrypted Private Data On-Chain
https://swcregistry.io/docs/SWC-136#odd-evensol
虽然 private 数据不能够被读取,但是攻击者可以通过提交的事务 data 看到入参,从而拿到被赋值的 private 状态变量的值
解决方案:对关键数据进行加密
示例解读:
示例是一个通过组合两个玩家的随机数进行分配奖励的游戏,结果是通过两个玩家输入的值相加后进行取余 2,然后确定获胜者
漏洞程序是玩家输入的num是可以通过tx 的 data 反解,从而破坏了游戏规则,在知道一个玩家的输入后,另一个玩家就可以作弊
修复解读:
将游戏分为 3 个阶段