diff --git a/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java
new file mode 100644
index 0000000..afdb45c
--- /dev/null
+++ b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java
@@ -0,0 +1,41 @@
+package com.budwk.app.web.commons.proc;
+
+import org.nutz.mvc.ActionContext;
+import org.nutz.mvc.impl.processor.AbstractProcessor;
+
+import java.util.Base64;
+
+/**
+ * @ClassName CspProcessor
+ * @Author JyuHsin
+ * @Date 2025/12/19 9:58
+ * @Version 1.0
+ * @Description TODO
+ */
+public class CspProcessor extends AbstractProcessor {
+
+ public void process(ActionContext ac) throws Throwable {
+ // 1. 生成 nonce
+ String nonce = Base64.getEncoder().encodeToString(
+ java.security.SecureRandom.getInstanceStrong().generateSeed(16)
+ );
+
+ // 2. 存入 request,供 Beetl 使用
+ ac.getRequest().setAttribute("cspNonce", nonce);
+
+ // 3. 设置 CSP 头
+ String csp = "default-src 'self'; " +
+ "script-src 'self' 'unsafe-eval' 'nonce-" + nonce + "' https:; " +
+ "worker-src 'self' blob:;" +
+ "style-src * 'unsafe-inline' data:; " +
+ "img-src 'self' data: https:; " +
+ "font-src * data:; " +
+ "connect-src 'self' https:; " +
+ "frame-ancestors 'none'; " +
+ "object-src 'none';";
+
+ ac.getResponse().setHeader("Content-Security-Policy", csp);
+
+ doNext(ac);
+ }
+}
diff --git a/src/main/resources/chain/mvc-chain.json b/src/main/resources/chain/mvc-chain.json
index 32fb22a..fa56461 100644
--- a/src/main/resources/chain/mvc-chain.json
+++ b/src/main/resources/chain/mvc-chain.json
@@ -3,6 +3,7 @@ var chain={
"ps" : [
"com.budwk.app.web.commons.proc.LogTimeProcessor",
"com.budwk.app.web.commons.proc.GlobalsSettingProcessor",
+ "com.budwk.app.web.commons.proc.CspProcessor",
"org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor",
"org.nutz.mvc.impl.processor.EncodingProcessor",
"org.nutz.mvc.impl.processor.ModuleProcessor",
diff --git a/src/main/resources/static/components/module/kh/KhZb.vue b/src/main/resources/static/components/module/kh/KhZb.vue
index 64043cb..252b7ca 100644
--- a/src/main/resources/static/components/module/kh/KhZb.vue
+++ b/src/main/resources/static/components/module/kh/KhZb.vue
@@ -217,7 +217,7 @@
-
-
-
-
-
-
-
-