Veris-Labs/veris-go
GitHub: Veris-Labs/veris-go
Veris Labs 官方 Go SDK,封装了 Akamai BMP iOS/Web V3/Web SBSD 场景下 sensor 数据生成的完整 session 管理流程,让开发者无需直接对接底层 API。
Stars: 1 | Forks: 0
Veris Labs 官方 Golang SDK。
它提供了一种便捷的方式来与 Veris Labs API 交互并执行各种操作。
如需了解更多信息,请访问 docs.verislabs.io。
此 SDK 尚未进入稳定阶段,遵循 v0.x.y 版本控制方案。
# 安装
只需运行以下命令即可安装 SDK:\
`go get github.com/veris-labs/veris-go`
# 用法
此 SDK 的核心思想是不直接暴露 API endpoint,而是提供一组*编程原语*以减少样板代码,并使其**更易于调用 API**。\
SDK 围绕 **"session"** 的概念进行设计,涵盖了整个流程——从获取主页到提交 checkout。单一的 session 原语可确保**一致性**,并让您**无需担心底层细节**即可轻松使用 API。
## Client
为了与 SDK 进行交互,您必须首先创建一个 client。
```
client := veris.NewClient("veris_apikey")
```
## Akamai BMP iOS
`AkamaiBMPIOSSession` 返回一个 builder 且不发起请求。`Create`
会发起初始化请求并返回有状态的 session。创建未使用的
session 仍会按正常的 sensor 生成费率收费。
```
session, err := client.AkamaiBMPIOSSession(
"4.2.0",
"com.xyz.app",
"1.0.0",
).
WithIOSVersionRange("17.0.0", "18.9.9").
WithModel("iPhone14,2").
Create(ctx)
if err != nil {
return err
}
```
`Sensor` 同样仅返回一个 builder。`Generate` 会发起一次收费请求,并且
成功后,会自动推进 session 状态。
```
sensor, reportData, err := session.Sensor().
WithParams(paramsResponse).
WithDCIScript(dciScript).
Generate(ctx)
if err != nil {
return err
}
```
## Akamai Web V3
`AkamaiWebV3Session` 返回一个 builder 且不发起请求。`Create` 仅
创建本地 SDK 状态;首次调用 `Sensor` 会初始化远程 session
并且是首次收费请求。
```
session := client.AkamaiWebV3Session(
userAgent,
scriptURL,
scriptBody,
"en-US",
).
WithIP(proxyIP).
Create()
sensor, reportData, err := session.Sensor(ctx, pageURL, abck, bmsz)
if err != nil {
return err
}
```
session 会在首次请求时自动发送 script,并在后续请求中发送最新的
不透明加密 session 状态。
## Akamai Web SBSD
`AkamaiWebSBSDSession` 返回一个 builder 且不发起请求。`Create` 仅
创建本地 SDK 状态;每次调用 `Sensor` 均为一次收费请求。
```
session := client.AkamaiWebSBSDSession(
userAgent,
scriptURL,
scriptBody,
"en-US",
).Create()
sensor, reportData, err := session.Sensor(ctx, pageURL, bmSo)
if err != nil {
return err
}
```
session 会自动保留首次及后续 SBSD sensor 阶段所需的加密状态。
标签:Akamai, EVTX分析, Go, Ruby工具, Web安全, 反爬虫绕过, 日志审计, 网络调试, 自动化, 蓝队分析