【合约检测工具】使用 Slither 检测合约中的 “坏味道”

前言

在合约开发中,重中之重是合约的安全。在开发中,我时常会疑惑,除了自己写的单元测试,还有没有别的方法可以像 sonar 一样检测 solidity 中的 “坏味道” 呢?咱们不用收费的 MythX ,可以试一试简单易用,开源的 Slither。

Silther 安装

这里我个人建议使用 pip3 安装的方式,而不是使用 docker,一是因为 docker pull image 的时候拉去速度很慢,二是因为之后还要将镜像外的 workspace 映射到镜像里,觉得有些麻烦。

Step1

如果没有 pip3 包管理器,请先安装 python3.6+,这也是运行 slither 的必要条件。

brew install python3

安装好后,安装 slither

pip3 install slither-analyzer

git clone https://github.com/crytic/slither.git && cd slither

python3 setup.py install

Step2

打开 Solidity 工程根目录,运行

slither .

就可以检查项目中所有合约以及所有依赖的坏味道。cmd 中会打印红黄绿三种颜色的,红色是特别建议修改的,但是提示也不一定准确,需要分析每一处 vulnerable code 是否真的有问题,再决定是否修改。

可能遇到的问题

  1. 找不到合约
    原因有可能是之前用到的依赖合约现在不用了,导致 node_modules 里面没有合约,但是artifact 里有编译后的 link 文件。
    所以清理根目录中 artifact 文件夹,把之前生成的 link 文件删掉就好了。

猜你喜欢

转载自blog.csdn.net/weixin_43742184/article/details/122483946
今日推荐