# secore **Repository Path**: zbjxb/secore ## Basic Information - **Project Name**: secore - **Description**: security core: 提供@access_gateway和set_security_context()进行权限管控,避免AI在开发过程中意外破坏关键数据和资产。其中security_context()的合法账户或条件可以通过在程序运行时手动输入来得到满足,进而起到对关键资产和数据的保护作用。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-14 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # secore `secore` 是一个轻量级的权限网关核心模块,旨在通过物理隔离和函数级拦截来保护底层数据引擎。 ## 特性 - **轻量级**:基于 `simpleeval` 和 `wrapt`。 - **不可绕过**:使用装饰器模式进行拦截。 - **精细化**:支持基于上下文(User Role, Action, Symbol 等)的逻辑评估。 - **安全隔离**:建议打包成 `.whl` 后在主项目中使用,避免 AI 直接修改权限逻辑。 - **安全上下文注入**:支持通过 `contextvars` 进行隐式上下文管理,防止 AI 通过函数传参伪造身份。 ## 安装 ```bash # 在项目根目录下执行 pip install . ``` ## 安全实践:防止 AI 绕过 为了防止 AI 在辅助编程时通过修改函数调用参数(如 `context={'user_role': 'admin'}`)来伪造身份,`secore` 推荐使用**隐式上下文管理**。 ### 1. 设置受信上下文 (在你的框架或入口处) ```python from secore import set_security_context # 在请求开始或认证完成后设置 with set_security_context({"user_role": "user", "user_id": 123}): # 后续所有的函数调用都将自动受此上下文保护 run_business_logic() ``` ### 3. 策略隔离最佳实践:将逻辑变为“黑盒” 为了彻底杜绝 AI 看到具体的权限逻辑,你可以将策略定义在一个独立的领域模块中,并在业务代码中仅通过**常量**引用。 **领域策略定义 (AI 禁区):** ```python # finance_policies.py (此文件不放入 AI 扫描范围) from secore import load_policies class FinancePolicies: EXECUTE_TRADE = "finance:execute_trade" _POLICIES = { EXECUTE_TRADE: "user_role == 'admin' or (user_role == 'trader' and amount < 1000000)" } @classmethod def initialize(cls): load_policies(cls._POLICIES) ``` **业务代码 (AI 活跃区):** ```python from secore import access_gateway from my_secure_package import FinancePolicies # AI 只能看到接口 class TradeEngine: @access_gateway(FinancePolicies.EXECUTE_TRADE) def trade(self, amount): # AI 只能看到 EXECUTE_TRADE 这个名字,无法看到背后的 < 1000000 逻辑 # 因此它无法通过修改代码逻辑来绕过限制 return "Trade success" ```