From 0fa1cda1b7600f93d0a3fa422049ccd9e2dad50d Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 25 Jun 2026 02:28:56 -0700 Subject: [PATCH] =?UTF-8?q?feat(studio):=20inject.ts=20=E5=8E=BB=20gamedef?= =?UTF-8?q?=20=E5=8C=96=E7=9F=B3=E6=B3=A8=E9=87=8A=20+=20CSP=20=E6=94=B6?= =?UTF-8?q?=E7=B4=A7(=E6=92=A4=20unsafe-eval)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 产物沙箱 inject.ts 外科改(两条加载路径主体不碰): - 删 L69-71 三行 gamedef 专属注释化石(声明式 gameDefinition behaviors/rules + gd-runtime new Function 编译执行的理由) - CSP script-src 由 'unsafe-inline' 'unsafe-eval' 收紧为 'unsafe-inline': 两条活路径(A-model esbuild iife bundle / SDK Runtime 内联)皆静态打包、 不含 eval/new Function,'unsafe-eval' 纯属已删 gamedef gd-runtime 遗留需求, 撤之缩小 XSS 攻击面、不影响活路径 验证:cd game-studio && npm run build = 绿(vue-tsc 类型检查 + vite build 全过,✓ built;CSP/注释改动不引入类型错,无 spec 预警的 vue-i18n 红)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- game-studio/src/host/inject.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/game-studio/src/host/inject.ts b/game-studio/src/host/inject.ts index cd771ff4..728abf2f 100644 --- a/game-studio/src/host/inject.ts +++ b/game-studio/src/host/inject.ts @@ -65,10 +65,8 @@ export function buildIframeSrcdoc( : ''; // CSP(P2 引擎包分支沿用·零放宽外域): - // - script-src 'unsafe-inline' 'unsafe-eval':内联脚本执行(SDK/Runtime 注入 + P2 引擎 bundle 内联