智能合约安全——私有数据访问

这次我们将了解如何访问合约中的私有数据(private 数据)。

目标合约

话不多说,直接上代码

智能合约安全——私有数据访问_第1张图片

这次我们的目标合约是部署在 Ropsten 上的一个合约。

合约地址:0x3505a02BCDFbb225988161a95528bfDb279faD6b

链接: https://ropsten.etherscan.io/…

漏洞分析

由上面的合约代码我们可以看到,Vault 合约将用户的用户名和密码这样的敏感数据记录在了合约中,我们知道合约中修饰变量的关键字仅限制其调用范围,这也就间接证明了合约中的数据均是公开的,可任意读取的,将敏感数据记录在合约中是不安全的。

读取数据

首先,让我们来学习一下solidity的 storage存储方式:1)storage 中的数据被永久存储。其以键值对的形式存储在 slot 插槽中。

2)storage在插槽中数据从右向左排列,空间不足时,打包当前插槽,开启下一个插槽存储数据;存储定长数组(长度固定)时,数组中每一个数据

你可能感兴趣的:(智能合约,安全,区块链)