Pārlūkot izejas kodu

[Fix SEC-20260913] 生产剥离 mock-login 免密通道

lizuo 1 nedēļu atpakaļ
vecāks
revīzija
8f87ade516

+ 0 - 4
.env

@@ -29,9 +29,5 @@ VITE_CACHE_CIPHER_IV_CHAR_CODE=64,49,49,49,49,49,48,48,48,48,48,49,49,49,49,95
 VITE_LOGIN_CIPHER_KEY_CHAR_CODE=95,49,49,49,49,49,48,48,48,48,48,49,49,49,49,64
 VITE_LOGIN_CIPHER_IV_CHAR_CODE=64,49,49,49,49,49,48,48,48,48,48,49,49,49,49,95
 
-# Mock登录用户名/密码 — 使用 charCode 方式
-VITE_MOCK_LOGIN_USERNAME_CHAR_CODE=97,117,116,111,65,100,109,105,110
-VITE_MOCK_LOGIN_PASSWORD_CHAR_CODE=97,117,116,111,65,100,109,105,110,49,50,51
-
 # 签名密钥串(前后端要一致) — 使用 charCode 方式
 VITE_SIGNATURE_SECRET_CHAR_CODE=100,100,48,53,102,49,99,53,52,100,54,51,55,52,57,101,100,97,57,53,102,57,102,97,54,100,52,57,118,52,52,50,97

+ 3 - 4
src/router/guard/permissionGuard.ts

@@ -90,11 +90,10 @@ export function createPermissionGuard(router: Router) {
       await doTokenLogin(tokenStr);
       return next({ path: to.fullPath, replace: true, query: to.query });
     }
-    // 如果指定了需要模拟登录则执行模拟登录,覆盖原有的登录信息
+    // 【SEC-20260913】mock-login 免密通道已剥离:不再调用 mockLogin,仅告警并跳转正常登录页
     if (to.query[MOCK_LOGIN_URL_QUERY.key] === MOCK_LOGIN_URL_QUERY.val) {
-      await userStore.mockLogin({ goHome: false });
-      delete to.query[MOCK_LOGIN_URL_QUERY.key];
-      return next({ path: to.fullPath, replace: true, query: to.query });
+      console.warn('[security] mock-login 免密通道已禁用,跳转登录页');
+      return next({ path: LOGIN_PATH, replace: true });
     }
 
     const token = userStore.getToken;

+ 5 - 0
src/store/modules/user.ts

@@ -373,6 +373,11 @@ export const useUserStore = defineStore({
         successMode?: SuccessMessageMode;
       } = {}
     ) {
+      // 【SEC-20260913】生产构建期剥离:import.meta.env.PROD 为构建期常量,生产产物中以下登录分支不可达
+      if (import.meta.env.PROD) {
+        console.warn('[security] mockLogin 免密通道在生产环境不可用');
+        return Promise.reject(new Error('mockLogin is disabled in production'));
+      }
       try {
         const loginParams = {
           username: MOCK_LOGIN_UESRNAME,

+ 2 - 2
src/views/vent/home/configurable/fireBD.vue

@@ -34,10 +34,10 @@
       </div>
     </div>
     <div class="right-t">
-      <div class="tcontent-l" @click="redirectTo('/grout-home?mock-login=1')">
+      <div class="tcontent-l" @click="redirectTo('/grout-home')">
         <div>智能注浆系统</div>
       </div>
-      <div class="tcontent-r" @click="redirectTo('/nitrogen-home?mock-login=1')">
+      <div class="tcontent-r" @click="redirectTo('/nitrogen-home')">
         <div>智能注氮系统</div>
       </div>
     </div>

+ 2 - 2
src/views/vent/home/configurable/green/fire-green.vue

@@ -24,10 +24,10 @@
         </div>
       </div>
       <div class="right-t">
-        <div class="tcontent-l" @click="redirectTo('/grout-home?mock-login=1')">
+        <div class="tcontent-l" @click="redirectTo('/grout-home')">
           <div>智能注浆系统</div>
         </div>
-        <div class="tcontent-r" @click="redirectTo('/nitrogen-home?mock-login=1')">
+        <div class="tcontent-r" @click="redirectTo('/nitrogen-home')">
           <div>智能注氮系统</div>
         </div>
       </div>