feat: 升级至 v0.3.16 — 工单修复 51 项 + 审查修复 30 项(安全加固/适配器/工具系统/数据层/前端)
This commit is contained in:
@@ -95,6 +95,7 @@ export class SandboxManager {
|
||||
*/
|
||||
scanCode(code: string): { safe: boolean; reason?: string } {
|
||||
// C-5 修复: 补齐 28 个模式 + 加强 base64/$() 检测
|
||||
// #13 修复: 补全 require('fs')、动态 import、process.binding、new Function、Reflect.get 等绕过模式
|
||||
// @see project_memory.md — sandbox scanCode must include 28 patterns with 'i' flag
|
||||
// and base64/$() detection to prevent encoding bypass
|
||||
const dangerousPatterns = [
|
||||
@@ -102,6 +103,22 @@ export class SandboxManager {
|
||||
/require\s*\(\s*['"]child_process['"]\s*\)/i,
|
||||
/import\s+.*from\s+['"]fs['"]/i,
|
||||
/import\s+.*from\s+['"]child_process['"]/i,
|
||||
// #13 新增: require('fs') 同步 require 形式(1)
|
||||
/require\s*\(\s*['"]fs['"]\s*\)/i,
|
||||
// #13 新增: 动态 import('fs') / import('child_process')(2)
|
||||
/\bimport\s*\(\s*['"](?:fs|child_process|os|net|http|https|crypto|dns|cluster)['"]\s*\)/i,
|
||||
// 审查修复 (M8): 兜底检测所有动态 import 调用 — 原模式只匹配字符串字面量,
|
||||
// 动态 import 用变量 import(m) 可绕过。沙箱中应禁止所有动态 import。
|
||||
// 注意:此模式较宽泛,会拦截 import(safeModule),但沙箱 fail-closed 策略可接受。
|
||||
/\bimport\s*\(/i,
|
||||
// #13 新增: process.binding('fs') 底层绑定(1)
|
||||
/\bprocess\.binding\s*\(/i,
|
||||
// #13 新增: new Function() 函数构造(1)
|
||||
/\bnew\s+Function\s*\(/i,
|
||||
// #13 新增: Reflect.get 字符串拼接绕过(1)
|
||||
/\bReflect\.get\s*\(/i,
|
||||
// #13 新增: Function('return process') 等函数构造执行(1)
|
||||
/\bFunction\s*\(\s*['"]return\s+(?:process|require|global|globalThis)['"]\s*\)/i,
|
||||
// 代码执行(3)
|
||||
/\beval\s*\(/i,
|
||||
/process\.exit/i,
|
||||
|
||||
Reference in New Issue
Block a user