From adca151e4f07a4c6a2a753bfa48ee0d4d6469fd2 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 5 Dec 2025 00:45:56 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=82=AE=E4=BB=B6=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/libs/lib-k8s/src/lib/k8s.client.ts | 1 + .../plugins/plugin-deploy-to-mail.ts | 20 +++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/libs/lib-k8s/src/lib/k8s.client.ts b/packages/libs/lib-k8s/src/lib/k8s.client.ts index d5f8f6bd0..5c3081c1d 100644 --- a/packages/libs/lib-k8s/src/lib/k8s.client.ts +++ b/packages/libs/lib-k8s/src/lib/k8s.client.ts @@ -168,6 +168,7 @@ export class K8sClient { const oldIngress = await client.readNamespacedIngress(ingressName, namespace); const newIngress = merge(oldIngress.body, opts.body); const res = await client.replaceNamespacedIngress(ingressName, namespace, newIngress); + this.logger.info("ingress patched", opts.body); return res; } diff --git a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts index 1ece351c2..86da8fc12 100644 --- a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts +++ b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-deploy-to-mail.ts @@ -1,6 +1,7 @@ import {AbstractTaskPlugin, FileItem, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput} from '@certd/pipeline'; import {CertInfo, CertReader} from "@certd/plugin-cert"; import dayjs from "dayjs"; +import { get } from 'lodash-es'; @IsTaskPlugin({ name: 'DeployCertToMailPlugin', @@ -176,11 +177,18 @@ export class DeployCertToMailPlugin extends AbstractTaskPlugin { }) } - compile(templateString:string) { - return new Function('data', ` with(data || {}) { - return \`${templateString}\`; - } - `); - } + compile(templateString: string) { + // 1. 转义所有HTML特殊字符 + + // 2. 使用更安全的方式替换变量 + return function(data) { + return templateString.replace(/\${(.*?)}/g, (match, key) => { + // 3. 安全地获取属性,避免原型链访问 + const value = get(data, key, ''); + // 4. 对值也进行转义 + return String(value); + }); + }; +} } new DeployCertToMailPlugin();