[空投脚本基础-女巫篇]-几个你必须知道的流程控制方式

如果想跟踪最新资讯可以关注我的推特:@airdorp_cmd

我会保持,日—周—月三个级别的不同题材更新。

喜欢的可以点赞转发,也欢迎大家一起交流学习:TG社区

从脚本的角度看,我们知道,常见的女巫方式有以下几种:

  • 重放:重复发送或者是复制发送,相同的内容

  • 输入错误:输入的信息错误

  • 交互逻辑:正常的用户交互逻辑顺序问题

  • 权限过度使用:非正常接口调用权限过度使用

按照以上的逻辑我们归结一下几点来充分说明:

一、交互顺序问题

交互顺序逻辑,我们举一个简单的例子来说明。

对于有DID认证权限的项目来说,我们要做的顺序是先去请求对应的DID权限,然后再去请求对应的交互逻辑接口。

这里有一个问题,正常情况下,我们一般是先知道接口再去写交互脚本的,这时候我们一般是知道有了DID权限之后,我们需要请求哪些接口来完成任务。正常的顺序是:

a、请求DID身份认证信息。

b、完成交互任务

但是,很多时候,很多脚本的请求顺序是,直接去交互任务,这时候就会越权请求对应的任务接口,返回错误信息之后通过判断没有权限然后再去请求对应的DID身份认证信息,再去进行任务交互。

这种逻辑正确吗?

好像没什么问题,但是如果前端接口进行了埋点记录,这就是一种女巫行为,因为正常的前端操作是不可能先去做任务再去请求DID的,没有认证信息之前,任务按钮一般都是灰色的或者是不显示的。只有通过脚本才能进行调用。

二、越权调用或接口过度使用

越权其实通过上述案例启示可以很容易理解,就是非认证权限下调用下层接口。

这就会让前端埋点被动记录。

接口过度使用其实也很容易理解。

举一个简单的例子。

对于常规任务的先后顺序不论是后端接口还是前端交互界面,一般都是有一个全局变量来控制的。

对于一系列连续的交互任务来说,我们的逻辑顺序是,一件一件按次序的完成,然后再和全局接口进行比对校验,其实每一次的交互都会有对应的返回值,这也是可以作为全局判断的依据。

不可行也是不可取的是,每次交互都是请求全局状态认证进行校验。

比如:用户任务状态接口是

https://xxx.com/user/config

请求任务接口为:

https://xxx.com/user/task1
https://xxx.com/user/task2
https://xxx.com/user/task3

常规的开发逻辑应该是:全局config是一个用户状态维护,不同任务接口是局部接口的任务状态维护,完成对应的任务都会有对应的返回值返回回来。

如果按照,每完成一个任务就去请求一下config接口来进行校验任务状态,这其实就属于过度请求。常规的产品中,除非了用户刷新和用户主动更新,是不会频繁请求config接口的,这气势就是一个隐患,一定会有吗?不一定,但是一旦有就100%女巫。

以上均是站在严格女巫的角度来做的接口调用方面的逻辑顺序树立,并不一定适合所有项目,但是如果能避免就尽量避免这些不必要的麻烦。

毕竟当下的交互成本并不低,所以尽可能的规避不必要的风险。

因为web3当前处于一个很早起的阶段,项目周期也很短,开发周期更短,以上说的内容并不能代表所有的项目配置,但这一定是趋势。随着更多的web2开发着参与进来,我想web2的防范水平也很快会普及到web3中,这只是时间问题。

如果你想获得更多web3脚本交互信息可以关注我的推特,或者订阅

我们会持续保持更新,让健康的交互成为更多人可以做的事情。

Subscribe to 0xmetaOG
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.