zig-utils/zig-injection
GitHub: zig-utils/zig-injection
用原生 Zig 实现的零内存分配 SQL 注入和 XSS 检测库,在行为上兼容 libinjection 4 并提供 C 接口供现有系统集成。
Stars: 1 | Forks: 0
# zig-injection
`zig-injection` 是一个原生 Zig 编写的 SQL 注入和 XSS 检测器,目标是
在行为上与 libinjection 4 保持兼容。它专为有界、
无内存分配的请求检查而设计,并提供了既符合 Zig 惯用法又
稳定的 C 接口。
该项目正在积极开发中。兼容性是基于固定的上游语料库来衡量的;
而不是通过 API 的相似性来推断的。
## 环境要求
- Zig 0.17-dev,通过 [Pantry](https://github.com/oven-sh/pantry) 解析
- 无需 Git 子模块
```
pantry install
zig build test
```
## 原生 API
可重用的状态使得检查过程无需进行内存分配:
```
const injection = @import("injection");
var state: injection.sqli.State = .{};
const result = injection.sqli.detect("1 UNION SELECT secret", &state);
if (result.is_sqli) {
// result.reason and result.fingerprintBytes() are valid immediately.
}
```
输入数据的所有权仍归调用者所有。Token 偏移量指的是输入中的字节位置,
固定容量耗尽的情况会通过 `Result.truncated` 来报告。该 API
目前已可使用,但与 libinjection 4 的完全兼容性取决于固定的
差分语料库以及 INJECT-04 的折叠/指纹识别工作。
## 路线图
具体的实现与兼容性工作由
[INJECT 路线图](https://github.com/zig-utils/zig-injection/issues/1) 负责跟踪。
## 许可证
MIT。上游测试固件保留了其原始的声明和许可证。
标签:CISA项目, DOE合作, libinjection, SQL注入检测, URL发现, WAF引擎, XSS检测, Zig, 云安全监控, 安全检测, 静态分析