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 @@ - - - - - - - - diff --git a/src/main/resources/views/layouts/v4/apps.html b/src/main/resources/views/layouts/v4/apps.html index 75a6f6a..8a95f77 100644 --- a/src/main/resources/views/layouts/v4/apps.html +++ b/src/main/resources/views/layouts/v4/apps.html @@ -415,7 +415,7 @@ layout("/layouts/v4/baseLayout.html"){ - - - - - - - - - - - - - diff --git a/src/main/resources/views/platform/sys/task/index.html b/src/main/resources/views/platform/sys/task/index.html index c59b913..1315e29 100644 --- a/src/main/resources/views/platform/sys/task/index.html +++ b/src/main/resources/views/platform/sys/task/index.html @@ -104,7 +104,7 @@ layout("/layouts/platform.html"){ - - - - - - diff --git a/src/main/resources/views/platform/zhgh/mall/manage/goods/add/index.html b/src/main/resources/views/platform/zhgh/mall/manage/goods/add/index.html index 25cd537..9521b15 100644 --- a/src/main/resources/views/platform/zhgh/mall/manage/goods/add/index.html +++ b/src/main/resources/views/platform/zhgh/mall/manage/goods/add/index.html @@ -11,7 +11,7 @@ layout("/layouts/platform.html"){ - + @@ -20,12 +20,12 @@ layout("/layouts/platform.html"){ - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/check/task/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/check/task/index.html index ad99511..992a00d 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/check/task/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/check/task/index.html @@ -5,19 +5,19 @@ layout("/layouts/platform.html"){ - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/check/union/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/check/union/index.html index ad99511..992a00d 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/check/union/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/check/union/index.html @@ -5,19 +5,19 @@ layout("/layouts/platform.html"){ - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html index 57a0536..40b68da 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html @@ -6,7 +6,7 @@ layout("/layouts/platform.html"){ - + 导出 @@ -36,16 +36,16 @@ layout("/layouts/platform.html"){ - + - - - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/singleTeacher/chart/index.html b/src/main/resources/views/platform/zhgh/staffmanage/singleTeacher/chart/index.html index 45948f7..5b69332 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/singleTeacher/chart/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/singleTeacher/chart/index.html @@ -236,7 +236,7 @@ layout("/layouts/platform.html"){ - - - - - -