Cover photo

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

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

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

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

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

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

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

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

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

post image

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

一、交互顺序问题

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

对于有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

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