scanii/scanii-php

GitHub: scanii/scanii-php

Scanii 内容处理 API 的官方 PHP SDK,用于在 PHP 应用中集成恶意文件扫描能力。

Stars: 1 | Forks: 0

# scanii-php [Scanii](https://www.scanii.com) 内容处理 API 的官方 PHP SDK。 ## SDK 原则 1. **轻量。** 零运行时依赖,仅使用标准库。 2. **保持最新。** 始终与最新的 Scanii API 保持同步。 3. **仅用于集成。** 仅封装 REST API —— 重试、并发和批处理由调用者负责。 唯一需要的标准库扩展是 `ext-curl` 和 `ext-json`,这两个扩展在所有官方 PHP 发行版(包括 Windows 构建版本)中均默认提供。 ## 安装 ``` composer require scanii/scanii-php ``` 要求 PHP 8.4 或更高版本。 ## 快速入门 ``` use Scanii\ScaniiClient; $client = ScaniiClient::create('your-api-key', 'your-api-secret'); // Scan a file from disk: $result = $client->process('/path/to/file'); echo implode(', ', $result->findings); ``` `ScaniiClient::create` 返回一个线程友好的客户端,您可以跨请求重用它;其构造函数不执行任何 I/O 操作。 ### 从流进行扫描 传入任何 PHP 流资源 —— `fopen()`、`tmpfile()`、`php://temp` 等: ``` // From a temp file / in-memory stream: $stream = fopen('php://temp', 'r+'); fwrite($stream, $content); rewind($stream); $result = $client->processStream($stream, 'upload.bin'); echo implode(', ', $result->findings); fclose($stream); ``` ## 区域节点 | 常量 | 节点 | |---|---| | `ScaniiTarget::AUTO` | `https://api.scanii.com` | | `ScaniiTarget::US1` | `https://api-us1.scanii.com` | | `ScaniiTarget::EU1` | `https://api-eu1.scanii.com` | | `ScaniiTarget::EU2` | `https://api-eu2.scanii.com` | | `ScaniiTarget::AP1` | `https://api-ap1.scanii.com` | | `ScaniiTarget::AP2` | `https://api-ap2.scanii.com` | | `ScaniiTarget::CA1` | `https://api-ca1.scanii.com` | 传入任何字符串 URL 以指定自定义或本地节点: ``` $client = ScaniiClient::create('key', 'secret', 'http://localhost:4000'); ``` ## 使用 scanii-cli 进行本地开发 针对本地模拟服务器运行集成测试 —— 无需真实的凭据: ``` docker run -d --name scanii-cli -p 4000:4000 ghcr.io/scanii/scanii-cli:latest server composer install composer test ``` 测试凭据:key 为 `key`,secret 为 `secret`,节点为 `http://localhost:4000`。 ## 从 `uvasoftware/scanii-php` 迁移 ``` -"uvasoftware/scanii-php": "^5.0" +"scanii/scanii-php": "^6.0" ``` PHP 命名空间保持不变(`Scanii\…`)。其他显著更改: - 运行时不再依赖 Guzzle。仅使用 `ext-curl` 和 `ext-json`(两者均为标准库)。 - 自动加载器使用 PSR-4 —— `src/Scanii/...` 文件向上移动到了 `src/...`。 - 结果对象使用 **公共 `readonly` 属性** 而非 getter: - $r->getFindings() + $r->findings - `process` / `processAsync` / `fetch` 现在显式接收一个可为空的 `?string $callback` 作为最后一个参数(之前通过元数据隐式传递): - $client->fetch($url, $callback, $metadata) + $client->fetch($url, $metadata, $callback) - 错误抛出 `Scanii\ScaniiException`(及其子类 `ScaniiAuthException`、`ScaniiRateLimitException`),而非 Guzzle 异常。 旧的 composer 坐标 `uvasoftware/scanii-php` 已弃用,将不再接收后续更新。 ## API 文档 完整的 Scanii API 契约请参阅 [https://scanii.github.io/openapi/v22/](https://scanii.github.io/openapi/v22/)。 ## 许可证 Apache 2.0 —— 详见 [LICENSE](LICENSE)。
标签:AMSI绕过, Composer, cURL, ffuf, JSON, Naabu, OpenVAS, PHP, REST API, SaaS集成, Web安全, 内容处理, 内容安全, 威胁检测, 恶意软件扫描, 扫描服务, 文件扫描, 无依赖, 流处理, 网络安全, 蓝队分析, 隐私保护