Anikk02/triansec-sdk

GitHub: Anikk02/triansec-sdk

一款为 FastAPI 应用提供基于行为分析的 API 安全防护 SDK,防御凭证填充、爬虫和自动化机器人攻击。

Stars: 0 | Forks: 0

# TriAnSec SDK [![PyPI version](https://badge.fury.io/py/triansec.svg)](https://badge.fury.io/py/triansec) [![Python versions](https://img.shields.io/pypi/pyversions/triansec.svg)](https://pypi.org/project/triansec/) [![License](https://img.shields.io/pypi/l/triansec.svg)](https://opensource.org/licenses/MIT) **TriAnSec SDK** 是一个轻量级的 Python SDK,用于将 TrianSec API 安全平台集成到您的 FastAPI/Starlette 应用程序中。它提供基于行为的 API 保护,且无需修改您现有的业务逻辑。 ## ✨ 功能 - 🔒 **基于行为的保护** - 分析请求模式,而不仅仅是速率限制 - ⚡ **快速决策路径** - 安全决策延迟低于 15ms - 🛡️ **自适应策略引擎** - 动态应用 ALLOW、BLOCK 或 THROTTLE 决策 - 🧠 **有状态的智能** - 为每个身份维护历史行为状态 - 📊 **可解释的决策** - 每个决策都包含人类可读的原因 - 🔌 **即插即用** - 只需一行代码即可完成最小化集成 - 🎯 **多租户隔离** - 每个客户端的安全态势相互独立 ## 📦 安装 ``` pip install triansec ``` 支持 FastAPI(可选): ``` pip install triansec[fastapi] ``` 用于开发: ``` pip install triansec[dev] ``` ## 🚀 快速开始 ### 1. 获取您的 API Key 在 [TriAnSec](https://triansec.com) 注册并从仪表板生成您的 API key。 ### 2. 添加 Middleware ``` from fastapi import FastAPI from triansec import TriAnSec app = FastAPI() # 添加 security middleware app.add_middleware( TriAnSec, api_key="ts_live_xxxxxxxxx", timeout=5, fallback_action="allow", ) @app.get("/") async def root(): return {"message": "Protected by TrianSec"} ``` ## 📋 使用示例 ### 选项 1:直接使用 Middleware(最简单) ``` from fastapi import FastAPI from triansec import TriAnSec app = FastAPI() app.add_middleware( TriAnSec, api_key="ts_live_xxxxxxxxx", timeout=10, fallback_action="allow", ) ``` ### 选项 2:使用类和 Install 方法 ``` from fastapi import FastAPI from triansec.security import TriAnSec app = FastAPI() security = TriAnSec( api_key="ts_live_xxxxxxxxx", timeout=10, fallback_action="allow", ) security.install(app) ``` ### 选项 3:一行代码设置 ``` from fastapi import FastAPI from triansec.security import setup_security app = FastAPI() security = setup_security( app, api_key="ts_live_xxxxxxxxx", timeout=10, fallback_action="allow", add_health=True, add_shutdown=True, ) ``` ### 使用配置对象 ``` from fastapi import FastAPI from triansec import TriAnSec, SecurityConfig app = FastAPI() config = SecurityConfig( api_key="ts_live_xxxxxxxxx", timeout=10, fallback_action="block", enable_cache=True, cache_ttl=600, ) app.add_middleware(TriAnSec, config=config) ``` ## ⚙️ 配置选项 | 参数 | 类型 | 默认值 | 描述 | |-----------|------|---------|-------------| | `api_key` | `str` | **必填** | 您的 TrianSec API key | | `engine_url` | `str` | 硬编码 | 安全引擎 URL(您无需设置此项) | | `timeout` | `int` | `5` | 请求超时时间(秒) | | `retry_count` | `int` | `3` | 重试次数 | | `fallback_action` | `str` | `"allow"` | 引擎不可用时的操作(`"allow"` 或 `"block"`) | | `enable_cache` | `bool` | `True` | 启用本地决策缓存 | | `cache_ttl` | `int` | `300` | 缓存 TTL(秒) | | `cache_maxsize` | `int` | `1000` | 最大缓存条目数 | | `enable_debug` | `bool` | `False` | 启用调试模式 | | `bypass_paths` | `List[str]` | 控制面路径 | 绕过安全检查的路径 | ## 🔧 环境变量 | 变量 | 描述 | 默认值 | |----------|-------------|---------| | `TRIANSEC_API_KEY` | 您的 TrianSec API key | (必填) | | `TRIANSEC_ENGINE_URL` | 安全引擎 URL | `https://api.triansec.com` | | `TRIANSEC_TIMEOUT` | 请求超时时间(秒) | `5` | | `TRIANSEC_RETRY_COUNT` | 重试次数 | `3` | | `TRIANSEC_FALLBACK_ACTION` | 回退操作(`allow` 或 `block`) | `allow` | | `TRIANSEC_CACHE_ENABLED` | 启用缓存(`true` 或 `false`) | `true` | | `TRIANSEC_CACHE_TTL` | 缓存 TTL(秒) | `300` | | `TRIANSEC_DEBUG` | 调试模式(`true` 或 `false`) | `false` | ## 🔒 工作原理 ``` Incoming Request │ ▼ SDK Middleware │ ▼ Extract Request Data (IP, User-Agent, Headers, etc.) │ ▼ Check Local Cache │ ▼ Send to Security Engine (with API key from request) │ ▼ Security Engine validates API key, analyzes behavior │ ▼ Return Decision (ALLOW / BLOCK / THROTTLE) │ ▼ Apply Decision │ ▼ Your Application Logic ``` ## 🛡️ 安全决策 | 决策 | 描述 | |----------|-------------| | **ALLOW** | 请求合法,放行至您的应用程序 | | **THROTTLE** | 请求可疑,带限流 header 放行 | | **BLOCK** | 请求恶意,返回 `429 Too Many Requests` | ## 🧪 开发 ### 设置 ``` git clone https://github.com/triansec/triansec-sdk.git cd triansec-sdk python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e .[dev] ``` ### 运行测试 ``` pytest ``` ### 运行测试并生成覆盖率报告 ``` pytest --cov=triansec --cov-report=html ``` ### 代码检查 ``` ruff check . black . mypy triansec ``` ## 📄 许可证 本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 📞 支持 - 文档:[https://docs.triansec.com](https://docs.triansec.com) - 问题:[https://github.com/Anikk02/triansec-sdk/issues](https://github.com/triansec/triansec-sdk/issues) - 邮箱:support@triansec.com ## 👥 作者 - **Aniket Paswan** - *后端架构、系统设计、策略引擎、安全 Middleware、前端开发* - **Anjali Jha** - *认证架构、API Key 生成与管理、前端开发、UI/UX* - **Anshika Pratap Singh** - *系统管理、前端开发、UI/UX、开发者仪表板* ## 🙏 鸣谢 - 基于 [FastAPI](https://fastapi.tiangolo.com/) 和 [Starlette](https://www.starlette.io/) 构建 - 由 [httpx](https://www.python-httpx.org/) 和 [Pydantic](https://docs.pydantic.dev/) 提供支持
标签:API安全, AppImage, AV绕过, FastAPI, JSON输出, Python, Web应用防火墙, 反爬虫, 无后门, 运行时操纵, 逆向工具