From 73788c459506ac4f3a454f92923025f01b1791c6 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Mon, 26 Oct 2026 21:33:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=AA=83=E5=8F=96=20token=E3=80=81=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=8D=E9=93=BE=20XSS=20=E5=92=8C=E6=89=93=E5=88=86?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E4=B8=8A=E9=99=90=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 运行提交代码的 iframe(编辑器预览、随机评分弹窗、/submission/:id、全屏预览) 加上 sandbox,不给 allow-same-origin,代码读不到 localStorage 里的 token - 提示词和 AI 回复的 markdown 渲染时转义原始 HTML,链接只放行 http(s)/mailto; ChainModal 也改用这个渲染函数 - 打分限定 1-5 分(超出返回 422),不能给自己的提交打分 Co-Authored-By: Claude Opus 5.5 --- .../src/components/ai/RandomRatingModal.vue | 11 +++++-- client/src/components/editor/Preview.vue | 22 ++++++++++--- .../src/components/submissions/ChainModal.vue | 6 +--- client/src/pages/Submission.vue | 27 ++++++---------- client/src/utils/markdown.ts | 32 +++++++++++++++++-- client/src/utils/previewDocument.ts | 5 +++ server/src/routes/submission.ts | 5 +-- server/tests/api.test.ts | 4 +++ 8 files changed, 78 insertions(+), 34 deletions(-) diff --git a/client/src/components/ai/RandomRatingModal.vue b/client/src/components/ai/RandomRatingModal.vue index c4556a9..f10a1be 100644 --- a/client/src/components/ai/RandomRatingModal.vue +++ b/client/src/components/ai/RandomRatingModal.vue @@ -14,7 +14,11 @@ {{ current.task_title }} · 提交者 {{ current.username }}
- +
- +