Bläddra i källkod

fix(security): 关闭Fastjson AutoType并移除硬编码云密钥

关闭Redis序列化AutoType,腾讯云短信密钥改为配置/环境变量注入。

Co-authored-by: Cursor <cursoragent@cursor.com>
吴树波 11 timmar sedan
förälder
incheckning
78ba1b49d0
29 ändrade filer med 47 tillägg och 28 borttagningar
  1. 1 1
      fs-ad-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  2. 1 1
      fs-ad-new-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  3. 6 0
      fs-admin/src/main/resources/application.yml
  4. 1 1
      fs-common-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  5. 1 1
      fs-company-app/src/main/java/com/fs/core/config/FastJson2JsonRedisSerializer.java
  6. 1 1
      fs-company/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  7. 1 1
      fs-doctor-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  8. 1 1
      fs-framework/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  9. 1 1
      fs-ipad-task/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  10. 1 1
      fs-live-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  11. 1 1
      fs-live-mq/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  12. 1 1
      fs-mp-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  13. 1 1
      fs-qw-api-msg/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  14. 1 1
      fs-qw-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  15. 1 1
      fs-qw-company-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  16. 1 1
      fs-qw-mq/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  17. 1 1
      fs-qw-task/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  18. 1 1
      fs-qw-voice/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  19. 1 1
      fs-qwhook-msg/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  20. 1 1
      fs-qwhook-sop/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  21. 1 1
      fs-qwhook/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  22. 1 1
      fs-redis/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  23. 1 1
      fs-repeat-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  24. 14 1
      fs-service/src/main/java/com/fs/sms/service/impl/SmsTServiceImpl.java
  25. 1 1
      fs-store/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  26. 1 1
      fs-user-app-ai-chat/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  27. 1 1
      fs-user-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  28. 1 1
      fs-watch/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java
  29. 1 1
      fs-wx-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

+ 1 - 1
fs-ad-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-ad-new-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 6 - 0
fs-admin/src/main/resources/application.yml

@@ -12,3 +12,9 @@ spring:
 #    active: druid-fby
 #    active: dev
 
+# 腾讯云短信密钥(安全修复:禁止硬编码,请通过环境变量注入,并立即轮换旧密钥)
+tencent:
+  cloud:
+    secret-id: ${TENCENT_CLOUD_SECRET_ID:}
+    secret-key: ${TENCENT_CLOUD_SECRET_KEY:}
+

+ 1 - 1
fs-common-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-company-app/src/main/java/com/fs/core/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-company/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-doctor-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-framework/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -27,7 +27,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-ipad-task/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-live-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-live-mq/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-mp-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qw-api-msg/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qw-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qw-company-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qw-mq/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qw-task/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qw-voice/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qwhook-msg/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qwhook-sop/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-qwhook/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-redis/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-repeat-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 14 - 1
fs-service/src/main/java/com/fs/sms/service/impl/SmsTServiceImpl.java

@@ -21,6 +21,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
@@ -32,10 +33,22 @@ public class SmsTServiceImpl implements SmsService {
     @Autowired
     private RedisCache redisCache;
 
+    /** 腾讯云 SecretId,从配置注入,禁止硬编码 */
+    @Value("${tencent.cloud.secret-id:}")
+    private String tencentSecretId;
+
+    /** 腾讯云 SecretKey,从配置注入,禁止硬编码 */
+    @Value("${tencent.cloud.secret-key:}")
+    private String tencentSecretKey;
+
     @Override
     public R sendTSms(String mobile, String code) {
         try {
-            Credential cred = new Credential("AKIDdAdvzoQpzuOo11mq2TntjKI5eqrhNp22", "zmLgpzzcwAFNJ4dx2iDTVHgw3ELCrIVg");
+            if (tencentSecretId == null || tencentSecretId.isEmpty()
+                    || tencentSecretKey == null || tencentSecretKey.isEmpty()) {
+                return R.error("腾讯云短信密钥未配置,请设置 tencent.cloud.secret-id/secret-key");
+            }
+            Credential cred = new Credential(tencentSecretId, tencentSecretKey);
             HttpProfile httpProfile = new HttpProfile();
             httpProfile.setEndpoint("sms.tencentcloudapi.com");
             ClientProfile clientProfile = new ClientProfile();

+ 1 - 1
fs-store/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-user-app-ai-chat/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-user-app/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-watch/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)

+ 1 - 1
fs-wx-api/src/main/java/com/fs/framework/config/FastJson2JsonRedisSerializer.java

@@ -28,7 +28,7 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
 
     static
     {
-        ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+        ParserConfig.getGlobalInstance().setAutoTypeSupport(false); // 安全修复:关闭 AutoType,防止反序列化 RCE
     }
 
     public FastJson2JsonRedisSerializer(Class<T> clazz)